-- Sending rate limit profiles (global + per-account link)

CREATE TABLE IF NOT EXISTS sending_limit_profiles (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(120) NOT NULL,
  is_global_default TINYINT(1) NOT NULL DEFAULT 0,
  min_delay_sec INT UNSIGNED NOT NULL DEFAULT 5,
  max_delay_sec INT UNSIGNED NOT NULL DEFAULT 30,
  emails_before_break_min INT UNSIGNED NOT NULL DEFAULT 3,
  emails_before_break_max INT UNSIGNED NOT NULL DEFAULT 8,
  min_break_min INT UNSIGNED NOT NULL DEFAULT 3,
  max_break_min INT UNSIGNED NOT NULL DEFAULT 8,
  max_per_hour INT UNSIGNED NOT NULL DEFAULT 20,
  max_per_day INT UNSIGNED NOT NULL DEFAULT 50,
  tier_fresh_daily_cap INT UNSIGNED NOT NULL DEFAULT 15,
  tier_warming_daily_cap INT UNSIGNED NOT NULL DEFAULT 75,
  tier_established_daily_cap INT UNSIGNED NOT NULL DEFAULT 500,
  active TINYINT(1) NOT NULL DEFAULT 1,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

INSERT INTO sending_limit_profiles (
  name, is_global_default, min_delay_sec, max_delay_sec,
  emails_before_break_min, emails_before_break_max, min_break_min, max_break_min,
  max_per_hour, max_per_day, tier_fresh_daily_cap, tier_warming_daily_cap, tier_established_daily_cap
) VALUES (
  'Global default', 1, 5, 30, 3, 8, 3, 8, 20, 50, 15, 75, 500
);

ALTER TABLE company_smtp_accounts
  ADD CONSTRAINT fk_smtp_sending_profile
    FOREIGN KEY (sending_profile_id) REFERENCES sending_limit_profiles(id) ON DELETE SET NULL;
