CREATE TABLE IF NOT EXISTS corrida_eventos (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_corrida INT NOT NULL,
  id_usuario INT NULL,
  tipo_usuario ENUM('passageiro', 'motorista', 'admin', 'sistema') NULL,
  evento VARCHAR(80) NOT NULL,
  status_anterior VARCHAR(40) NULL,
  status_novo VARCHAR(40) NULL,
  motivo VARCHAR(120) NULL,
  observacao TEXT NULL,
  dados_json JSON NULL,
  criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_corrida_eventos_corrida FOREIGN KEY (id_corrida) REFERENCES corridas(id) ON DELETE CASCADE,
  CONSTRAINT fk_corrida_eventos_usuario FOREIGN KEY (id_usuario) REFERENCES usuarios(id) ON DELETE SET NULL,
  INDEX idx_corrida_eventos_corrida_data (id_corrida, criado_em),
  INDEX idx_corrida_eventos_usuario_data (id_usuario, criado_em),
  INDEX idx_corrida_eventos_evento (evento)
);
