-- Criar tabela fcm_tokens
CREATE TABLE IF NOT EXISTS fcm_tokens (
    id INT AUTO_INCREMENT PRIMARY KEY,
    fcm_token VARCHAR(500) NOT NULL,
    user_type ENUM('gestor', 'motorista') NOT NULL,
    device_id VARCHAR(100) NOT NULL,
    device_name VARCHAR(100) DEFAULT 'Android Device',
    app_version VARCHAR(20) DEFAULT '1.0.0',
    platform VARCHAR(20) DEFAULT 'android',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    
    -- Índices para performance
    INDEX idx_user_type (user_type),
    INDEX idx_device_id (device_id),
    INDEX idx_fcm_token (fcm_token(100)),
    
    -- Garantir que não há tokens duplicados para o mesmo dispositivo e tipo
    UNIQUE KEY unique_device_user_type (device_id, user_type)
);

-- Criar tabela notificacoes se não existir
CREATE TABLE IF NOT EXISTS notificacoes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id VARCHAR(100) NOT NULL,
    user_type ENUM('gestor', 'motorista') NOT NULL,
    titulo VARCHAR(255) NOT NULL,
    mensagem TEXT NOT NULL,
    tipo VARCHAR(50) DEFAULT 'geral',
    dados JSON,
    data_envio TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    lida BOOLEAN DEFAULT FALSE,
    
    INDEX idx_user_type (user_id, user_type),
    INDEX idx_tipo (tipo),
    INDEX idx_lida (lida),
    INDEX idx_data_envio (data_envio)
);

-- Inserir alguns tokens de teste (opcional)
INSERT IGNORE INTO fcm_tokens (fcm_token, user_type, device_id, device_name, app_version) VALUES
('test_token_gestor_1', 'gestor', 'test_device_1', 'Samsung Galaxy S21', '1.0.0'),
('test_token_motorista_1', 'motorista', 'test_device_2', 'Xiaomi Redmi Note', '1.0.0');

-- Mostrar resultado
SELECT 'Tabelas criadas com sucesso!' as resultado; 