-- Script para crear la tabla de pagos/transacciones de Wompi
-- Ejecutar este script en la base de datos MySQL

CREATE TABLE IF NOT EXISTS pagos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id INT NOT NULL,
  plan_id INT NOT NULL,
  referencia VARCHAR(255) NOT NULL UNIQUE COMMENT 'Referencia única de la transacción',
  wompi_transaction_id VARCHAR(255) NULL COMMENT 'ID de la transacción en Wompi',
  estado ENUM('pendiente', 'aprobado', 'rechazado', 'cancelado', 'error') NOT NULL DEFAULT 'pendiente',
  monto DECIMAL(10, 2) NOT NULL,
  moneda VARCHAR(10) NOT NULL DEFAULT 'COP',
  metodo_pago VARCHAR(50) NULL COMMENT 'Método de pago utilizado (tarjeta, PSE, etc.)',
  datos_wompi JSON NULL COMMENT 'Datos completos de la respuesta de Wompi',
  webhook_data JSON NULL COMMENT 'Datos recibidos del webhook de Wompi',
  ip_cliente VARCHAR(45) NULL,
  user_agent TEXT NULL,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  INDEX idx_user_id (user_id),
  INDEX idx_plan_id (plan_id),
  INDEX idx_referencia (referencia),
  INDEX idx_wompi_transaction_id (wompi_transaction_id),
  INDEX idx_estado (estado),
  INDEX idx_created_at (created_at),
  FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
  FOREIGN KEY (plan_id) REFERENCES planes(id) ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

