CREATE TABLE IF NOT EXISTS users (
  id BIGINT NOT NULL PRIMARY KEY,
  username VARCHAR(64) NULL,
  name VARCHAR(128) NOT NULL DEFAULT '',
  state VARCHAR(40) NULL,
  sdata TEXT NULL,
  started TINYINT(1) NOT NULL DEFAULT 0,
  banned TINYINT(1) NOT NULL DEFAULT 0,
  created_at DATETIME NOT NULL,
  INDEX idx_username (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS deals (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  buyer_id BIGINT NOT NULL,
  seller_id BIGINT NOT NULL,
  price VARCHAR(64) NOT NULL,
  descr TEXT NOT NULL,
  status VARCHAR(20) NOT NULL,
  middleman_id INT UNSIGNED NULL,
  link VARCHAR(255) NULL,
  created_at DATETIME NOT NULL,
  updated_at DATETIME NOT NULL,
  INDEX idx_status (status),
  INDEX idx_buyer (buyer_id),
  INDEX idx_seller (seller_id),
  INDEX idx_mm (middleman_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- پیام‌های ارسال‌شده برای هر واسطه به ازای هر درخواست؛ برای پاک/ویرایش‌کردن پیام بقیه واسطه‌ها
-- وقتی یکی از واسطه‌ها درخواست را برداشت
CREATE TABLE IF NOT EXISTS deal_broadcasts (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  deal_id INT UNSIGNED NOT NULL,
  middleman_id INT UNSIGNED NOT NULL,
  chat_id BIGINT NOT NULL,
  message_id BIGINT NOT NULL,
  created_at DATETIME NOT NULL,
  UNIQUE KEY uniq_deal_mm (deal_id, middleman_id),
  INDEX idx_deal (deal_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS middlemen (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  tg_id BIGINT NOT NULL,
  username VARCHAR(64) NULL,
  title VARCHAR(64) NOT NULL,
  link VARCHAR(255) NOT NULL,
  active TINYINT(1) NOT NULL DEFAULT 1,
  deals_done INT UNSIGNED NOT NULL DEFAULT 0,
  cap BIGINT UNSIGNED NULL,
  created_at DATETIME NOT NULL,
  INDEX idx_tg (tg_id),
  INDEX idx_active (active)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE IF NOT EXISTS scammers (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  reporter_id BIGINT NOT NULL,
  target VARCHAR(64) NOT NULL,
  descr TEXT NOT NULL,
  status VARCHAR(12) NOT NULL DEFAULT 'pending',
  created_at DATETIME NOT NULL,
  INDEX idx_target (target, status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- ذخیره‌ی همه‌ی تنظیمات قابل‌تغییر از پنل: متن‌ها (text.*)، دکمه‌ها (btn.* به صورت JSON)،
-- ایموجی‌ها (emoji.* به صورت JSON) و تنظیمات ساده (support ، channel و ...)
CREATE TABLE IF NOT EXISTS settings (
  k VARCHAR(64) NOT NULL PRIMARY KEY,
  v LONGTEXT NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
