CREATE TABLE IF NOT EXISTS `whatsapp_contact_intakes` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `phone` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL,
  `customer_id` bigint(20) DEFAULT NULL,
  `intake_type` varchar(40) COLLATE utf8mb4_unicode_ci NOT NULL,
  `status` varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open',
  `source_message` text COLLATE utf8mb4_unicode_ci,
  `normalized_text` text COLLATE utf8mb4_unicode_ci,
  `payload_json` mediumtext COLLATE utf8mb4_unicode_ci,
  `human_required` tinyint(1) NOT NULL DEFAULT '1',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `idx_wci_phone_created` (`phone`,`created_at`),
  KEY `idx_wci_customer` (`customer_id`),
  KEY `idx_wci_type_status` (`intake_type`,`status`),
  KEY `idx_wci_human_created` (`human_required`,`created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `whatsapp_service_knowledge` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `code` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL,
  `title` varchar(160) COLLATE utf8mb4_unicode_ci NOT NULL,
  `body` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `enabled` tinyint(1) NOT NULL DEFAULT '1',
  `sort_order` int(11) NOT NULL DEFAULT '100',
  `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uniq_wsk_code` (`code`),
  KEY `idx_wsk_enabled_sort` (`enabled`,`sort_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT IGNORE INTO `whatsapp_service_knowledge`
(`code`, `title`, `body`, `enabled`, `sort_order`, `created_at`, `updated_at`) VALUES
('intro', 'Información general', 'INTERLINK brinda servicio de internet según factibilidad técnica de cada zona. La disponibilidad puede ser por fibra o por antena, según cobertura.', 1, 10, NOW(), NOW()),
('plans', 'Planes', 'Los planes, velocidades y precio final se confirman según localidad, barrio, tecnología disponible y factibilidad técnica. Un operador comercial valida la opción correcta para tu domicilio.', 1, 20, NOW(), NOW()),
('installation', 'Instalación nueva', 'Para verificar instalación se solicita nombre completo, domicilio, barrio/localidad y una referencia de ubicación. La solicitud queda pendiente de revisión comercial.', 1, 30, NOW(), NOW());
