CREATE TABLE IF NOT EXISTS motorista_filtros_corrida (
  id_motorista INT PRIMARY KEY,
  aceita_dinheiro TINYINT(1) NOT NULL DEFAULT 1,
  aceita_economica TINYINT(1) NOT NULL DEFAULT 1,
  aceita_plus TINYINT(1) NOT NULL DEFAULT 1,
  aceita_pro TINYINT(1) NOT NULL DEFAULT 1,
  destino_ativo TINYINT(1) NOT NULL DEFAULT 0,
  destino_lat DECIMAL(10,7) NULL,
  destino_lng DECIMAL(10,7) NULL,
  destino_endereco VARCHAR(255) NULL,
  destino_ativado_em DATETIME NULL,
  destino_usos_data DATE NULL,
  destino_usos INT NOT NULL DEFAULT 0,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_motorista_filtros_motorista FOREIGN KEY (id_motorista) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_motorista_filtros_destino (destino_ativo, destino_usos_data)
);

CREATE TABLE IF NOT EXISTS motorista_destinos_corrida (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_motorista INT NOT NULL,
  tipo ENUM('favorito', 'recente') NOT NULL,
  titulo VARCHAR(80) NULL,
  endereco VARCHAR(255) NOT NULL,
  lat DECIMAL(10,7) NOT NULL,
  lng DECIMAL(10,7) NOT NULL,
  usado_em DATETIME NULL,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_motorista_destinos_motorista FOREIGN KEY (id_motorista) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_motorista_destinos_motorista (id_motorista, tipo, atualizado_em)
);
