CREATE TABLE IF NOT EXISTS facturacion_resumen_diarios (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    empresa_id BIGINT UNSIGNED NOT NULL,
    tipo_documento VARCHAR(2) NOT NULL DEFAULT 'RC' COMMENT 'RC = Resumen diario',
    fecha_generacion DATE NOT NULL,
    fecha_referencia DATE NOT NULL,
    fecha_envio DATE NOT NULL,
    serie VARCHAR(20) NOT NULL,
    correlativo INT UNSIGNED NOT NULL DEFAULT 1,
    nombre_xml VARCHAR(120) NULL,
    xml_path VARCHAR(600) NULL,
    xml_firmado_path VARCHAR(600) NULL,
    zip_path VARCHAR(600) NULL,
    cdr_zip_path VARCHAR(600) NULL,
    cdr_xml_path VARCHAR(600) NULL,
    ticket VARCHAR(80) NULL,
    estado VARCHAR(20) NOT NULL DEFAULT 'GENERADO' COMMENT 'GENERADO, FIRMADO, ZIPIADO, ENVIADO, PENDIENTE, ACEPTADO, RECHAZADO, ERROR, VENCIDO',
    codigo_sunat VARCHAR(20) NULL,
    mensaje_sunat VARCHAR(600) NULL,
    respuesta_soap LONGTEXT NULL,
    total_documentos INT UNSIGNED NOT NULL DEFAULT 0,
    total_importe DECIMAL(14,2) NOT NULL DEFAULT 0,
    created_by BIGINT UNSIGNED NULL,
    updated_by BIGINT UNSIGNED NULL,
    created_at DATETIME NOT NULL,
    updated_at DATETIME NULL,
    deleted_at DATETIME NULL,
    KEY idx_resumen_empresa_fecha (empresa_id, fecha_referencia),
    KEY idx_resumen_empresa_estado (empresa_id, estado),
    UNIQUE KEY uq_resumen_empresa_serie_correlativo (empresa_id, serie, correlativo),
    CONSTRAINT fk_resumen_empresa FOREIGN KEY (empresa_id) REFERENCES empresas(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS facturacion_resumen_diario_detalles (
    id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    resumen_id BIGINT UNSIGNED NOT NULL,
    comprobante_id BIGINT UNSIGNED NOT NULL,
    line_id INT UNSIGNED NOT NULL,
    documento_tipo_codigo VARCHAR(2) NOT NULL,
    documento_serie VARCHAR(20) NOT NULL,
    documento_numero VARCHAR(20) NOT NULL,
    cliente_documento_tipo VARCHAR(5) NULL,
    cliente_documento_numero VARCHAR(20) NULL,
    cliente_razon_social VARCHAR(255) NULL,
    condicion_code VARCHAR(2) NOT NULL DEFAULT '1',
    moneda VARCHAR(3) NOT NULL DEFAULT 'PEN',
    total_amount DECIMAL(14,2) NOT NULL DEFAULT 0,
    gravadas DECIMAL(14,2) NOT NULL DEFAULT 0,
    exoneradas DECIMAL(14,2) NOT NULL DEFAULT 0,
    inafectas DECIMAL(14,2) NOT NULL DEFAULT 0,
    igv DECIMAL(14,2) NOT NULL DEFAULT 0,
    created_at DATETIME NOT NULL,
    deleted_at DATETIME NULL,
    KEY idx_resumen_detalle_resumen (resumen_id),
    KEY idx_resumen_detalle_comprobante (comprobante_id),
    CONSTRAINT fk_resumen_detalle_resumen FOREIGN KEY (resumen_id) REFERENCES facturacion_resumen_diarios(id),
    CONSTRAINT fk_resumen_detalle_comprobante FOREIGN KEY (comprobante_id) REFERENCES facturacion_comprobantes(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
