USE bulo;

CREATE TABLE IF NOT EXISTS motorista_sessoes_online (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_motorista INT NOT NULL,
  inicio_em DATETIME NOT NULL,
  fim_em DATETIME NULL,
  duracao_segundos INT NOT NULL DEFAULT 0,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_sessoes_online_motorista FOREIGN KEY (id_motorista) REFERENCES usuarios(id),
  INDEX idx_sessoes_online_motorista_inicio (id_motorista, inicio_em),
  INDEX idx_sessoes_online_fim (fim_em)
);

INSERT INTO motorista_sessoes_online (id_motorista, inicio_em, fim_em, duracao_segundos)
SELECT id, NOW(), NULL, 0
FROM usuarios
WHERE tipo = 'motorista'
  AND disponivel = 'sim'
  AND NOT EXISTS (
    SELECT 1
    FROM motorista_sessoes_online s
    WHERE s.id_motorista = usuarios.id
      AND s.fim_em IS NULL
  );
