CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,tg_id BIGINT UNIQUE NOT NULL,username VARCHAR(255),first_name VARCHAR(255),wallet BIGINT NOT NULL DEFAULT 0,referrer_id BIGINT NULL,test_claimed TINYINT NOT NULL DEFAULT 0,state VARCHAR(64),state_data TEXT,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS plans (id INT PRIMARY KEY,title VARCHAR(100),gb INT NULL,days INT NOT NULL DEFAULT 30,price BIGINT NOT NULL,unlimited_devices INT NULL,active TINYINT DEFAULT 1) CHARACTER SET utf8mb4;
INSERT INTO plans(id,title,gb,days,price,unlimited_devices) VALUES
(1,'۱۰ گیگ',10,30,80000,NULL),(2,'۲۰ گیگ',20,30,150000,NULL),(3,'۳۰ گیگ',30,30,200000,NULL),(4,'۵۰ گیگ',50,30,350000,NULL),(5,'۱۰۰ گیگ',100,30,600000,NULL),(6,'نامحدود تک‌کاربره',NULL,30,800000,1),(7,'نامحدود دوکاربره',NULL,30,1000000,2)
ON DUPLICATE KEY UPDATE title=VALUES(title),price=VALUES(price);
CREATE TABLE IF NOT EXISTS orders (id INT AUTO_INCREMENT PRIMARY KEY,tg_id BIGINT,plan_id INT,amount BIGINT,status VARCHAR(40) DEFAULT 'awaiting_receipt',receipt_file_id TEXT,service_username VARCHAR(100),error_text TEXT,ref_rewarded TINYINT DEFAULT 0,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS services (id INT AUTO_INCREMENT PRIMARY KEY,tg_id BIGINT,order_id INT NULL,username VARCHAR(100) UNIQUE,plan_id INT,subscription_url TEXT,status VARCHAR(30) DEFAULT 'active',warn100 TINYINT DEFAULT 0,allow150 TINYINT DEFAULT 0,warn150 TINYINT DEFAULT 0,ignore_after150 TINYINT DEFAULT 0,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS wallet_log (id INT AUTO_INCREMENT PRIMARY KEY,tg_id BIGINT,amount BIGINT,type VARCHAR(50),note VARCHAR(255),created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) CHARACTER SET utf8mb4;
CREATE TABLE IF NOT EXISTS referrals (id INT AUTO_INCREMENT PRIMARY KEY,referrer_id BIGINT,referred_id BIGINT UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) CHARACTER SET utf8mb4;
