CREATE TABLE IF NOT EXISTS corrida_mensagens (
  id INT AUTO_INCREMENT PRIMARY KEY,
  id_corrida INT NOT NULL,
  remetente_tipo ENUM('motorista', 'passageiro', 'sistema') NOT NULL,
  id_remetente INT NOT NULL,
  nome_remetente VARCHAR(120) NULL,
  mensagem TEXT NOT NULL,
  lida_motorista TINYINT(1) NOT NULL DEFAULT 0,
  lida_passageiro TINYINT(1) NOT NULL DEFAULT 0,
  criado_em DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_corrida_mensagens_corrida
    FOREIGN KEY (id_corrida) REFERENCES corridas(id) ON DELETE CASCADE,
  CONSTRAINT fk_corrida_mensagens_usuario
    FOREIGN KEY (id_remetente) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_corrida_mensagens_corrida (id_corrida, criado_em),
  INDEX idx_corrida_mensagens_motorista (id_corrida, lida_motorista),
  INDEX idx_corrida_mensagens_passageiro (id_corrida, lida_passageiro)
);
