-- کاربران
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    telegram_id BIGINT UNIQUE NOT NULL,
    first_name VARCHAR(100),
    last_name VARCHAR(100),
    phone VARCHAR(20) DEFAULT NULL,
    phone_verified TINYINT(1) DEFAULT 0,
    dalin_balance DECIMAL(15,2) DEFAULT 0,
    group_id INT DEFAULT 1,
    state VARCHAR(50) DEFAULT NULL,
    state_data TEXT DEFAULT NULL,
    total_purchases INT DEFAULT 0,
    total_spent DECIMAL(15,2) DEFAULT 0,
    is_banned TINYINT(1) DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    last_seen DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

-- گروه‌های کاربری (تخفیف)
CREATE TABLE user_groups (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    discount_percent INT DEFAULT 0
);
INSERT INTO user_groups (id, name, discount_percent) VALUES 
(1, 'عادی', 0),
(2, 'نقره‌ای', 5),
(3, 'طلایی', 10),
(4, 'الماسی', 20);

-- دسته‌بندی‌ها
CREATE TABLE categories (
    id INT AUTO_INCREMENT PRIMARY KEY,
    parent_id INT DEFAULT 0,
    name VARCHAR(100),
    emoji VARCHAR(10) DEFAULT '📁',
    sort_order INT DEFAULT 0,
    is_active TINYINT(1) DEFAULT 1
);
INSERT INTO categories (id, parent_id, name, emoji, sort_order) VALUES
(1, 0, 'کتاب صوتی', '🎧', 1),
(2, 0, 'پادکست', '🎙', 2),
(3, 1, 'رمان', '📖', 1),
(4, 1, 'روانشناسی', '🧠', 2),
(5, 2, 'کسب و کار', '💼', 1);

-- محصولات (کتاب/پادکست)
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    category_id INT,
    title VARCHAR(200),
    description TEXT,
    cover_file_id VARCHAR(200),
    sort_order INT DEFAULT 0,
    is_active TINYINT(1) DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- قسمت‌های محصول (فصل‌ها/قسمت‌ها)
CREATE TABLE product_parts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT,
    title VARCHAR(200),
    price_dalin DECIMAL(15,2),
    audio_file_id VARCHAR(200),
    sort_order INT DEFAULT 0,
    is_active TINYINT(1) DEFAULT 1
);

-- خریدها
CREATE TABLE purchases (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    part_id INT,
    price_paid DECIMAL(15,2),
    discount_percent INT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY uniq_user_part (user_id, part_id)
);

-- تراکنش‌های شارژ
CREATE TABLE transactions (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    order_id VARCHAR(50) UNIQUE,
    dalin_amount DECIMAL(15,2),
    toman_amount DECIMAL(15,2),
    status ENUM('pending','paid','failed') DEFAULT 'pending',
    payment_url TEXT,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    paid_at DATETIME DEFAULT NULL
);

ALTER TABLE transactions ADD COLUMN invoice_id VARCHAR(100) NULL AFTER order_id;


-- بسته‌های شارژ پیش‌فرض
CREATE TABLE charge_packages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    dalin_amount DECIMAL(15,2),
    description VARCHAR(255),
    sort_order INT DEFAULT 0,
    is_active TINYINT(1) DEFAULT 1
);
INSERT INTO charge_packages (dalin_amount, description, sort_order) VALUES
(10, 'بسته اقتصادی', 1),
(20, 'بسته محبوب', 2),
(50, 'بسته ویژه 🔥', 3),
(100, 'بسته حرفه‌ای', 4);

-- تنظیمات (کلید-مقدار)
CREATE TABLE settings (
    `key` VARCHAR(100) PRIMARY KEY,
    `value` TEXT
);
INSERT INTO settings (`key`, `value`) VALUES
('toman_per_dalin', '1000'),
('rules_text', 'قوانین به‌زودی تنظیم می‌شود.'),
('payment_thanks', '✅ پرداخت شما با موفقیت انجام شد.\nاز خرید شما سپاسگزاریم 🌹'),
('support_waiting_msg', '✉️ پیام شما دریافت شد. به‌زودی پاسخ می‌دهیم.'),
('admin_chat_id', '0'),
('phone_prompt', 'برای استفاده از ربات، لطفاً شماره موبایل خود را با دکمه زیر ارسال کنید 👇');

-- پیام‌های پشتیبانی
CREATE TABLE support_tickets (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    message TEXT,
    status ENUM('open','answered','closed') DEFAULT 'open',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);