-- CESTÃO VALENÇA — FASES 114 A 116
-- Mercado Pago + PagBank para Pix.
-- Não altera config/database.php.

SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS payment_gateway_settings (
    id TINYINT UNSIGNED NOT NULL,
    provider ENUM('DISABLED','MERCADO_PAGO','PAGBANK') NOT NULL DEFAULT 'DISABLED',
    environment ENUM('PRODUCTION','SANDBOX') NOT NULL DEFAULT 'PRODUCTION',
    active TINYINT(1) NOT NULL DEFAULT 0,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO payment_gateway_settings(id,provider,environment,active,updated_at)
VALUES(1,'DISABLED','PRODUCTION',0,NOW())
ON DUPLICATE KEY UPDATE id=id;

CREATE TABLE IF NOT EXISTS payment_transactions (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    order_id BIGINT UNSIGNED NOT NULL,
    customer_id BIGINT UNSIGNED NOT NULL,
    provider ENUM('MERCADO_PAGO','PAGBANK') NOT NULL,
    external_id VARCHAR(120) NOT NULL,
    provider_order_id VARCHAR(120) NULL,
    method VARCHAR(20) NOT NULL DEFAULT 'PIX',
    status ENUM('PENDENTE','PAGO','FALHOU') NOT NULL DEFAULT 'PENDENTE',
    provider_status VARCHAR(60) NULL,
    amount DECIMAL(12,2) NOT NULL,
    pix_code TEXT NULL,
    qr_base64 LONGTEXT NULL,
    ticket_url TEXT NULL,
    expires_at DATETIME NULL,
    last_checked_at DATETIME NULL,
    created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id),
    UNIQUE KEY uq_payment_provider_external (provider,external_id),
    KEY idx_payment_order (order_id),
    KEY idx_payment_customer (customer_id),
    KEY idx_payment_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
