-- Sahand FX - License Database Schema
-- اجرا در phpMyAdmin یا MySQL



CREATE TABLE IF NOT EXISTS licenses (
    id               INT AUTO_INCREMENT PRIMARY KEY,
    code             VARCHAR(64)  NOT NULL UNIQUE,   -- کد فعال‌سازی
    name             VARCHAR(128) DEFAULT NULL,      -- نام مشتری
    account          VARCHAR(64)  DEFAULT NULL,      -- شماره حساب bind شده (NULL = هنوز فعال نشده)
    terminal         VARCHAR(80)  DEFAULT NULL,      -- اثرانگشتِ ترمینال/دستگاه bind شده (NULL = هنوز فعال نشده)
    expire           DATE         DEFAULT NULL,      -- تاریخ انقضا (NULL = نامحدود)
    active           TINYINT(1)   DEFAULT 1,         -- 0 = غیرفعال شده توسط ادمین
    first_activation DATETIME     DEFAULT NULL,
    last_check       DATETIME     DEFAULT NULL,
    created_at       DATETIME     DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;

-- اگر جدول licenses از قبل وجود دارد و ستون terminal را ندارد، یک‌بار اجرا کنید:
-- ALTER TABLE licenses ADD COLUMN terminal VARCHAR(80) DEFAULT NULL AFTER account;

-- ۵ لایسنس پیش‌فرض (account و terminal خالی = هنوز فعال نشده‌اند)
INSERT IGNORE INTO licenses (code, name, expire) VALUES
('SFX-0001-AAAA-1111', 'Demo User 1', NULL),         -- نامحدود
('SFX-0002-BBBB-2222', 'Demo User 2', '2026-12-31'),
('SFX-0003-CCCC-3333', 'Demo User 3', '2027-06-30'),
('SFX-0004-DDDD-4444', 'Demo User 4', '2026-09-30'),
('SFX-0005-EEEE-5555', 'Demo User 5', NULL);          -- نامحدود


-- ============================================================
-- جدول اخبار اقتصادی (News)
-- اکسپرت هنگام لود این لیست را می‌گیرد و سر وقتِ هر خبر روی چارت علامت می‌زند.
-- نکته زمان: مقدار event_time را به وقت GMT وارد کنید؛ اکسپرت با ورودیِ
-- GMTOffset آن را به وقت بروکر تبدیل می‌کند.
-- ============================================================
CREATE TABLE IF NOT EXISTS news (
    id          INT AUTO_INCREMENT PRIMARY KEY,
    event_time  DATETIME     NOT NULL,                  -- تاریخ و ساعت خبر (GMT)
    currency    VARCHAR(10)  DEFAULT '',                -- USD / EUR / GBP ...
    impact      ENUM('high','medium','low') DEFAULT 'high',  -- اهمیت
    title       VARCHAR(255) NOT NULL,                  -- عنوان خبر
    forecast    VARCHAR(32)  DEFAULT '',                -- پیش‌بینی (اختیاری)
    previous    VARCHAR(32)  DEFAULT '',                -- مقدار قبلی (اختیاری)
    active      TINYINT(1)   DEFAULT 1,                 -- 0 = مخفی شود
    created_at  DATETIME     DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_event_time (event_time),
    INDEX idx_active (active)
) ENGINE=InnoDB;

-- نمونه درج خبر:
-- INSERT INTO news (event_time, currency, impact, title, forecast, previous)
-- VALUES ('2026-06-20 12:30:00', 'USD', 'high', 'Non-Farm Payrolls', '180K', '175K');

-- ============================================================
-- داده‌های پیش‌فرض اخبار — مطابق تقویم Forex Factory روز جمعه ۱۹ ژوئن ۲۰۲۶
-- نگاشت اهمیت: نارنجی=high ، زرد=medium ، خاکستری(تعطیلی)=low
-- زمان‌ها به وقت GMT درج شده‌اند (با GMTOffset اکسپرت تنظیم می‌شوند).
-- ============================================================
INSERT INTO news (event_time, currency, impact, title, forecast, previous) VALUES
('2026-06-19 00:00:00', 'CNY', 'low',    'Bank Holiday',                   '',      ''),
('2026-06-19 00:00:00', 'USD', 'low',    'Bank Holiday',                   '',      ''),
('2026-06-19 02:15:00', 'NZD', 'medium', 'Trade Balance',                  '875M',  '1598M'),
('2026-06-19 02:31:00', 'GBP', 'medium', 'GfK Consumer Confidence',        '-23',   '-23'),
('2026-06-19 03:00:00', 'JPY', 'medium', 'National Core CPI y/y',          '1.4%',  '1.4%'),
('2026-06-19 03:20:00', 'JPY', 'medium', 'Monetary Policy Meeting Minutes','',      ''),
('2026-06-19 09:30:00', 'EUR', 'medium', 'German PPI m/m',                 '0.7%',  '1.2%'),
('2026-06-19 09:30:00', 'GBP', 'high',   'Retail Sales m/m',               '0.5%',  '-1.0%'),
('2026-06-19 09:30:00', 'GBP', 'medium', 'Public Sector Net Borrowing',    '19.0B', '23.0B'),
('2026-06-19 16:00:00', 'CAD', 'medium', 'Core Retail Sales m/m',          '0.8%',  '1.4%'),
('2026-06-19 16:00:00', 'CAD', 'medium', 'Retail Sales m/m',               '0.6%',  '0.9%'),
('2026-06-19 18:00:00', 'AUD', 'medium', 'CB Leading Index m/m',           '',      '-0.6%');
