-- 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;