CREATE TABLE facebook_ads_wizard_runs (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    integration_id INT UNSIGNED NOT NULL,
    ad_account_id VARCHAR(50) NOT NULL,
    campaign_id VARCHAR(50) NULL,
    adset_id VARCHAR(50) NULL,
    creative_id VARCHAR(50) NULL,
    ad_id VARCHAR(50) NULL,
    status ENUM('draft', 'created', 'failed') NOT NULL DEFAULT 'draft',
    campaign_payload JSON NULL,
    adset_payload JSON NULL,
    creative_payload JSON NULL,
    ad_payload JSON NULL,
    campaign_response JSON NULL,
    adset_response JSON NULL,
    creative_response JSON NULL,
    ad_response JSON NULL,
    created_by INT UNSIGNED NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
    CONSTRAINT fk_facebook_ads_wizard_integration
        FOREIGN KEY (integration_id) REFERENCES facebook_integrations (id)
        ON DELETE CASCADE,
    CONSTRAINT fk_facebook_ads_wizard_creator
        FOREIGN KEY (created_by) REFERENCES users (id)
        ON DELETE SET NULL,
    INDEX idx_facebook_ads_wizard_integration (integration_id, ad_account_id),
    INDEX idx_facebook_ads_wizard_campaign (campaign_id),
    INDEX idx_facebook_ads_wizard_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
