Files
html/generated/file_06.sql
2026-04-12 22:57:03 +02:00

38 lines
1.4 KiB
SQL

-- schema.sql - Structure MySQL
CREATE DATABASE IF NOT EXISTS saas_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE saas_db;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
stripe_customer_id VARCHAR(255) NULL,
subscription_status ENUM('inactive', 'active', 'cancelled') DEFAULT 'inactive',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_email (email),
INDEX idx_stripe_customer (stripe_customer_id)
) ENGINE=InnoDB;
CREATE TABLE subscriptions (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
stripe_subscription_id VARCHAR(255) NOT NULL,
status VARCHAR(50) NOT NULL,
current_period_end DATETIME NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_stripe_subscription (stripe_subscription_id)
) ENGINE=InnoDB;
CREATE TABLE api_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
endpoint VARCHAR(255) NOT NULL,
method VARCHAR(10) NOT NULL,
response_code INT NOT NULL,
response_time_ms INT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_user_date (user_id, created_at)
) ENGINE=InnoDB;