-- ============================================================
-- Webhook delivery log
-- scripts/Version20260928150000_webhook_delivery_log_up.sql
--
-- Historial de intentos de envío de webhooks outbound (enviados y no enviados).
-- Equivalente a: migrations/Version20260928150000.php
-- ============================================================

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS `webhook_delivery_log` (
    `id` BIGINT AUTO_INCREMENT NOT NULL,
    `maincompany_id` INT NOT NULL,
    `webhook_config_id` INT DEFAULT NULL,
    `source` VARCHAR(32) NOT NULL,
    `event` VARCHAR(64) NOT NULL,
    `message_type` VARCHAR(32) NOT NULL,
    `action` VARCHAR(32) NOT NULL,
    `entity_id` VARCHAR(64) NOT NULL,
    `url` VARCHAR(2048) DEFAULT NULL,
    `sent` TINYINT(1) NOT NULL DEFAULT 0,
    `outcome` VARCHAR(64) NOT NULL,
    `http_status` INT DEFAULT NULL,
    `payload` JSON DEFAULT NULL,
    `response_body` LONGTEXT DEFAULT NULL,
    `error_message` LONGTEXT DEFAULT NULL,
    `created_at` DATETIME NOT NULL,
    `updated_at` DATETIME NOT NULL,
    INDEX `idx_webhook_delivery_log_company_created` (`maincompany_id`, `created_at`),
    INDEX `idx_webhook_delivery_log_source_created` (`source`, `created_at`),
    INDEX `idx_webhook_delivery_log_type_action_created` (`message_type`, `action`, `created_at`),
    INDEX `idx_webhook_delivery_log_sent_created` (`sent`, `created_at`),
    INDEX `IDX_WEBHOOK_DELIVERY_LOG_MAINCOMPANY` (`maincompany_id`),
    PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB;

ALTER TABLE `webhook_delivery_log`
    ADD CONSTRAINT `FK_WEBHOOK_DELIVERY_LOG_MAINCOMPANY`
    FOREIGN KEY (`maincompany_id`) REFERENCES `maincompany` (`id`);
