-- Extend email_send_queue for warmup sends (same processor pipeline)

ALTER TABLE email_send_queue
  DROP FOREIGN KEY fk_queue_campaign,
  DROP FOREIGN KEY fk_queue_recipient;

ALTER TABLE email_send_queue
  MODIFY campaign_id INT NULL,
  MODIFY recipient_id BIGINT NULL,
  ADD COLUMN queue_type ENUM('campaign', 'warmup') NOT NULL DEFAULT 'campaign' AFTER id,
  ADD COLUMN warmup_gmail_id INT NULL AFTER recipient_id,
  ADD COLUMN warmup_template_id INT NULL AFTER warmup_gmail_id,
  ADD COLUMN warmup_subject VARCHAR(255) NULL AFTER warmup_template_id,
  ADD COLUMN warmup_body_text MEDIUMTEXT NULL AFTER warmup_subject,
  ADD COLUMN warmup_event_id BIGINT NULL AFTER warmup_body_text,
  ADD INDEX idx_queue_type_due (queue_type, status, scheduled_at);

ALTER TABLE email_send_queue
  ADD CONSTRAINT fk_queue_campaign FOREIGN KEY (campaign_id) REFERENCES email_campaigns(id) ON DELETE CASCADE,
  ADD CONSTRAINT fk_queue_recipient FOREIGN KEY (recipient_id) REFERENCES email_campaign_recipients(id) ON DELETE CASCADE,
  ADD CONSTRAINT fk_queue_warmup_gmail FOREIGN KEY (warmup_gmail_id) REFERENCES gmail_accounts(id) ON DELETE SET NULL;
