USE bulo;

CREATE TABLE IF NOT EXISTS passageiro_enderecos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_passageiro INT NOT NULL,
  rotulo VARCHAR(60) NOT NULL,
  endereco VARCHAR(255) NOT NULL,
  latitude DECIMAL(10,7) NULL,
  longitude DECIMAL(10,7) NULL,
  ordem TINYINT NOT NULL DEFAULT 0,
  ativo TINYINT(1) NOT NULL DEFAULT 1,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_pass_enderecos_usuario FOREIGN KEY (id_passageiro) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_pass_enderecos_usuario (id_passageiro, ativo, ordem)
);

CREATE TABLE IF NOT EXISTS passageiro_enderecos_recentes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_passageiro INT NOT NULL,
  endereco VARCHAR(255) NOT NULL,
  latitude DECIMAL(10,7) NULL,
  longitude DECIMAL(10,7) NULL,
  tipo ENUM('origem', 'destino') NOT NULL DEFAULT 'destino',
  usado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_pass_enderecos_recentes_usuario FOREIGN KEY (id_passageiro) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_pass_enderecos_recentes_usuario (id_passageiro, usado_em)
);
