-- ============================================
-- CORREÇÃO SIMPLES DO ERRO 500
-- Execute este script no phpMyAdmin ou MySQL
-- ============================================

-- 1. Selecionar banco
USE pinheir3_controle_frotas;

-- 2. Remover tabela se existir
DROP TABLE IF EXISTS solicitacoes_viagem;

-- 3. Criar tabela simples
CREATE TABLE solicitacoes_viagem (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    tecnico_id VARCHAR(50) NOT NULL,
    veiculo_id BIGINT NOT NULL,
    cliente VARCHAR(200) NOT NULL,
    motivo TEXT NOT NULL,
    km_inicial INT NOT NULL,
    latitude_inicial DECIMAL(10, 8) NULL,
    longitude_inicial DECIMAL(11, 8) NULL,
    endereco_inicial TEXT NULL,
    cliente_id BIGINT NULL,
    status ENUM('pendente', 'aprovada', 'negada', 'cancelada') DEFAULT 'pendente',
    gestor_id VARCHAR(50) NULL,
    observacoes TEXT NULL,
    prioridade ENUM('baixa', 'normal', 'alta', 'urgente') DEFAULT 'normal',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    INDEX idx_tecnico_id (tecnico_id),
    INDEX idx_veiculo_id (veiculo_id),
    INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 4. Criar tabela notificacoes_push
CREATE TABLE IF NOT EXISTS notificacoes_push (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    user_id VARCHAR(50) NOT NULL,
    tipo VARCHAR(50) NOT NULL,
    titulo VARCHAR(200) NOT NULL,
    mensagem TEXT NOT NULL,
    solicitacao_id BIGINT NULL,
    lida BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_user_id (user_id),
    INDEX idx_tipo (tipo)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 5. Adicionar campos na tabela motoristas
ALTER TABLE motoristas ADD COLUMN IF NOT EXISTS token VARCHAR(255) NULL;
ALTER TABLE motoristas ADD COLUMN IF NOT EXISTS token_validade TIMESTAMP NULL;
ALTER TABLE motoristas ADD COLUMN IF NOT EXISTS tipo VARCHAR(20) DEFAULT 'motorista';

-- 6. Testar inserção
INSERT INTO solicitacoes_viagem (
    tecnico_id, veiculo_id, cliente, motivo, km_inicial,
    latitude_inicial, longitude_inicial, endereco_inicial,
    observacoes, prioridade
) VALUES (
    '4', 6, 'Cliente Teste', 'Motivo Teste', 100,
    -10.9265, -37.0722, 'Endereço Teste',
    'Observação teste', 'normal'
);

-- 7. Verificar se funcionou
SELECT 'Teste realizado com sucesso!' as status;
SELECT COUNT(*) as total FROM solicitacoes_viagem;

-- 8. Limpar teste
DELETE FROM solicitacoes_viagem WHERE cliente = 'Cliente Teste';

SELECT 'Correção concluída!' as status; 