-- ============================================================
-- Accesos QR - Entrega 20: WhatsApp multi-fraccionamiento
-- No elimina ni modifica pagos, residentes, viviendas o accesos.
-- ============================================================
SET NAMES utf8mb4;

CREATE TABLE IF NOT EXISTS whatsapp_conexiones (
  fraccionamiento_id INT UNSIGNED NOT NULL,
  habilitado TINYINT(1) NOT NULL DEFAULT 0,
  estado VARCHAR(40) NOT NULL DEFAULT 'desconectado',
  telefono VARCHAR(32) DEFAULT NULL,
  ultimo_error VARCHAR(500) DEFAULT NULL,
  conectado_en DATETIME DEFAULT NULL,
  desconectado_en DATETIME DEFAULT NULL,
  actualizado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (fraccionamiento_id),
  KEY idx_wa_conexion_estado (habilitado, estado)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS whatsapp_bot_respuestas (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  fraccionamiento_id INT UNSIGNED NOT NULL,
  palabra_clave VARCHAR(255) NOT NULL,
  tipo ENUM('texto','botones','lista') NOT NULL DEFAULT 'texto',
  respuesta TEXT NOT NULL,
  datos_extra JSON DEFAULT NULL,
  activo TINYINT(1) NOT NULL DEFAULT 1,
  creado_por INT UNSIGNED DEFAULT NULL,
  actualizado_por INT UNSIGNED DEFAULT NULL,
  creado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  actualizado_en TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  UNIQUE KEY uq_wa_respuesta_sitio_clave (fraccionamiento_id, palabra_clave),
  KEY idx_wa_respuesta_sitio_activo (fraccionamiento_id, activo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS whatsapp_mensajes_log (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
  fraccionamiento_id INT UNSIGNED NOT NULL,
  direccion ENUM('entrada','salida') NOT NULL,
  telefono VARCHAR(40) DEFAULT NULL,
  mensaje TEXT DEFAULT NULL,
  estado VARCHAR(40) NOT NULL DEFAULT 'procesado',
  message_id VARCHAR(255) DEFAULT NULL,
  creado_en DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (id),
  KEY idx_wa_log_sitio_fecha (fraccionamiento_id, creado_en),
  KEY idx_wa_log_telefono (fraccionamiento_id, telefono)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SELECT 'Entrega 20 aplicada: WhatsApp multi-fraccionamiento listo' AS resultado;
