-- ============================================================
-- Tabelas do Sistema de WhatsApp - MontaLoja
-- Compatível com Evolution API
-- ============================================================

-- Configuração do WhatsApp por loja
CREATE TABLE IF NOT EXISTS whatsapp_config (
    id INT AUTO_INCREMENT PRIMARY KEY,
    store_id BIGINT UNSIGNED NOT NULL,
    api_url VARCHAR(255) NOT NULL COMMENT 'URL da API Evolution',
    api_key VARCHAR(255) NOT NULL COMMENT 'API Key da Evolution',
    instance_name VARCHAR(100) NOT NULL COMMENT 'Nome da instância',
    notify_new_order TINYINT(1) DEFAULT 1 COMMENT 'Notificar novo pedido',
    notify_status_change TINYINT(1) DEFAULT 1 COMMENT 'Notificar mudança de status',
    notify_payment TINYINT(1) DEFAULT 1 COMMENT 'Notificar pagamento confirmado',
    notify_shipping TINYINT(1) DEFAULT 1 COMMENT 'Notificar envio',
    is_connected TINYINT(1) DEFAULT 0 COMMENT 'Status da conexão',
    connected_phone VARCHAR(20) NULL COMMENT 'Número conectado',
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY unique_store (store_id),
    INDEX idx_store (store_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Log de notificações enviadas
CREATE TABLE IF NOT EXISTS whatsapp_notifications_log (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    store_id BIGINT UNSIGNED NOT NULL,
    order_id BIGINT UNSIGNED NULL,
    phone VARCHAR(20) NOT NULL,
    message_type VARCHAR(50) NOT NULL COMMENT 'new_order, status_change, payment, shipping',
    message_content TEXT NOT NULL,
    status ENUM('pending', 'sent', 'delivered', 'failed') DEFAULT 'pending',
    error_message TEXT NULL,
    api_response TEXT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    sent_at DATETIME NULL,
    INDEX idx_store (store_id),
    INDEX idx_order (order_id),
    INDEX idx_status (status),
    INDEX idx_created (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Templates de mensagens personalizados
CREATE TABLE IF NOT EXISTS whatsapp_templates (
    id INT AUTO_INCREMENT PRIMARY KEY,
    store_id BIGINT UNSIGNED NOT NULL,
    template_type VARCHAR(50) NOT NULL COMMENT 'new_order, status_change, payment, shipping',
    template_name VARCHAR(100) NOT NULL,
    template_content TEXT NOT NULL,
    is_active TINYINT(1) DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    UNIQUE KEY unique_template (store_id, template_type),
    INDEX idx_store (store_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- Inserir templates padrão para store_id 1
INSERT INTO whatsapp_templates (store_id, template_type, template_name, template_content) VALUES
(1, 'new_order', 'Novo Pedido', 'Olá {nome}! 🛒\n\nRecebemos seu pedido #{pedido}!\n\n📦 Itens:\n{itens}\n\n💰 Total: R$ {total}\n\nAcompanhe o status pelo nosso site.\nObrigado pela preferência! 🙏'),
(1, 'status_change', 'Mudança de Status', 'Olá {nome}! 📦\n\nSeu pedido #{pedido} teve uma atualização:\n\n📍 Status: {status}\n\nQualquer dúvida, estamos à disposição!'),
(1, 'payment', 'Pagamento Confirmado', 'Olá {nome}! ✅\n\nPagamento do pedido #{pedido} confirmado!\n\n💰 Valor: R$ {total}\n\nEstamos preparando seu pedido para envio. 📦'),
(1, 'shipping', 'Envio Realizado', 'Olá {nome}! 🚚\n\nSeu pedido #{pedido} foi enviado!\n\n📦 Código de rastreio: {rastreio}\n\nAcompanhe pelo site dos Correios ou transportadora.\nBoas compras! 🎉')
ON DUPLICATE KEY UPDATE template_content = VALUES(template_content);
