-- ============================================
-- Self Builder - Database Schema (نسخه کامل)
-- ============================================

CREATE TABLE IF NOT EXISTS user_settings (
    user_id BIGINT PRIMARY KEY,
    text_formatting VARCHAR(255) DEFAULT '[]',
    clock_enabled BOOLEAN DEFAULT 0,
    clock_font VARCHAR(50) DEFAULT 'default',
    clock_format VARCHAR(50) DEFAULT 'H:i',
    auto_reply_enabled BOOLEAN DEFAULT 0,
    auto_seen_enabled BOOLEAN DEFAULT 0,
    guardian_enabled BOOLEAN DEFAULT 0,
    locks_enabled BOOLEAN DEFAULT 0,
    secretary_enabled BOOLEAN DEFAULT 0,
    secretary_text TEXT DEFAULT 'سلام وقت شما بخیر🤍 لطفا صبور باشید به ترتیب پاسخ میدم ✅ این پیام ها خودکار ارسال شده‌اند 🤖',
    secretary_time INT DEFAULT 60,
    bio TEXT,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS auto_replies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    keyword VARCHAR(255),
    reply_text TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS contents (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    trigger_text VARCHAR(255),
    content_text TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS friends (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    friend_id BIGINT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS enemies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    enemy_id BIGINT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS friend_replies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    reply_text TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS enemy_replies (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    reply_text TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS reactions (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    emoji VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS silence_list (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    target_id BIGINT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS guardian_logs (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    chat_id BIGINT,
    message_id INT,
    action VARCHAR(50),
    content TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS forced_memberships (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id BIGINT,
    channel_id VARCHAR(255),
    channel_name VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES user_settings(user_id) ON DELETE CASCADE
);