CREATE TABLE IF NOT EXISTS facturacion_integracion_endpoints (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    codigo VARCHAR(50) NOT NULL,
    descripcion VARCHAR(180) NOT NULL,
    tipo VARCHAR(40) NOT NULL,
    proveedor VARCHAR(20) NOT NULL DEFAULT 'CUSTOM',
    ambiente VARCHAR(20) NOT NULL DEFAULT 'PRODUCCION',
    metodo VARCHAR(10) NOT NULL DEFAULT 'POST',
    url VARCHAR(600) NULL,
    headers_json JSON NULL,
    estado TINYINT(1) NOT NULL DEFAULT 1,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NULL,
    deleted_at DATETIME NULL,
    UNIQUE KEY uq_facturacion_integracion_codigo (codigo),
    KEY idx_facturacion_integracion_tipo (tipo),
    KEY idx_facturacion_integracion_proveedor (proveedor),
    KEY idx_facturacion_integracion_ambiente (ambiente)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO facturacion_integracion_endpoints
    (codigo, descripcion, tipo, proveedor, ambiente, metodo, url, estado, created_at)
VALUES
    ('SUNAT_FACTURA', 'Envio de comprobantes a SUNAT', 'EMISION', 'SUNAT', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('SUNAT_CONSULTA', 'Consulta de CDR / estado', 'CONSULTA', 'SUNAT', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('SUNAT_GUIA', 'Envio de guia de remision', 'GUIA', 'SUNAT', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('SUNAT_SUMARIO_BOLETA', 'Resumen diario de boletas', 'RESUMEN_BOLETAS', 'SUNAT', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('SUNAT_BAJA', 'Comunicacion de baja', 'RESUMEN_BAJA', 'SUNAT', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('OSE_FACTURA', 'Envio de comprobantes a OSE', 'EMISION', 'OSE', 'PRODUCCION', 'POST', NULL, 1, NOW()),
    ('CUSTOM_FACTURA', 'Endpoint personalizado de emision', 'EMISION', 'CUSTOM', 'PRODUCCION', 'POST', NULL, 1, NOW());
