exec(" CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, email VARCHAR(150) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); $db->exec(" CREATE TABLE IF NOT EXISTS webhook_logs ( id BIGINT AUTO_INCREMENT PRIMARY KEY, event_field VARCHAR(50) NOT NULL DEFAULT 'messages', from_number VARCHAR(30), contact_name VARCHAR(150), message_type VARCHAR(30), message_preview TEXT, raw_payload LONGTEXT, received_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_received_at (received_at), INDEX idx_from_number (from_number), INDEX idx_event_field (event_field) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); $db->exec(" CREATE TABLE IF NOT EXISTS conversations ( id BIGINT AUTO_INCREMENT PRIMARY KEY, message_id VARCHAR(100) NOT NULL UNIQUE, phone_number VARCHAR(30) NOT NULL, contact_name VARCHAR(150), direction ENUM('inbound','outbound') DEFAULT 'inbound', message_type VARCHAR(30), content TEXT, media_id VARCHAR(150), timestamp INT UNSIGNED, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_conv_phone (phone_number), INDEX idx_conv_created (created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); $db->exec(" CREATE TABLE IF NOT EXISTS notifications ( id BIGINT AUTO_INCREMENT PRIMARY KEY, type VARCHAR(50) NOT NULL DEFAULT 'new_message', reference_id BIGINT, phone_number VARCHAR(30), message TEXT, is_read TINYINT(1) DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_notif_read (is_read), INDEX idx_notif_created (created_at) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); $db->exec(" CREATE TABLE IF NOT EXISTS media_queue ( id BIGINT AUTO_INCREMENT PRIMARY KEY, message_id VARCHAR(100) NOT NULL, media_id VARCHAR(150) NOT NULL, media_type VARCHAR(30), attempts TINYINT DEFAULT 0, processed TINYINT(1) DEFAULT 0, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, INDEX idx_mq_processed (processed), INDEX idx_mq_message_id (message_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; "); // ─── Usuario admin por defecto ──────────────────────────────────────────────── $email = 'admin@palmas360.com'; $password = 'Palmas360@Admin26'; $hash = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]); $stmt = $db->prepare("INSERT IGNORE INTO users (name, email, password) VALUES (?, ?, ?)"); $stmt->execute(['Lizandro', $email, $hash]); echo "\n✅ Tablas creadas correctamente.\n"; echo "👤 Usuario: {$email}\n"; echo "🔑 Contraseña: {$password}\n"; echo "⚠️ Cambia la contraseña después del primer login.\n\n";