-- Intentos de pago con OpenPay (mensualidades/inscripciones del portal de alumnos).
-- Cada vez que el alumno pulsa "Pagar" se crea un intento con su propio order_id,
-- asi el webhook siempre encuentra el pago aunque el alumno reintente, y se guarda
-- el motivo de un fallo y los datos de la referencia (tienda / SPEI) para mostrarlos.
CREATE TABLE IF NOT EXISTS `pa_op_intento` (
  `ide` int(11) NOT NULL AUTO_INCREMENT,
  `ide_pag` int(11) NOT NULL,
  `order_id` varchar(100) NOT NULL,
  `openpay_id` varchar(100) DEFAULT NULL,
  `metodo` varchar(30) DEFAULT NULL,           -- card | store | bank_account
  `ref_pago` varchar(60) DEFAULT NULL,         -- tienda: referencia; SPEI: referencia numerica
  `convenio` varchar(30) DEFAULT NULL,         -- SPEI: convenio CIE (BBVA)
  `banco` varchar(60) DEFAULT NULL,            -- SPEI: banco receptor
  `clabe` varchar(20) DEFAULT NULL,            -- SPEI: CLABE interbancaria
  `estado` varchar(20) NOT NULL DEFAULT 'iniciado', -- iniciado | pendiente | pagado | rechazado | vencido | abandonado
  `error_code` varchar(20) DEFAULT NULL,
  `error_message` varchar(255) DEFAULT NULL,
  `creado` datetime NOT NULL,
  `vence_en` datetime NOT NULL,
  `actualizado` datetime DEFAULT NULL,
  PRIMARY KEY (`ide`),
  UNIQUE KEY `uk_order_id` (`order_id`),
  KEY `idx_ide_pag` (`ide_pag`),
  KEY `idx_estado` (`estado`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
