CREATE TABLE IF NOT EXISTS motorista_metricas_corridas (
  id_motorista INT PRIMARY KEY,
  periodo_dias INT NOT NULL DEFAULT 30,
  periodo_inicio DATE NULL,
  periodo_fim DATE NULL,
  chamadas_recebidas INT NOT NULL DEFAULT 0,
  chamadas_contabilizadas INT NOT NULL DEFAULT 0,
  chamadas_aceitas INT NOT NULL DEFAULT 0,
  chamadas_recusadas INT NOT NULL DEFAULT 0,
  chamadas_expiradas INT NOT NULL DEFAULT 0,
  chamadas_canceladas_sistema INT NOT NULL DEFAULT 0,
  chamadas_pendentes INT NOT NULL DEFAULT 0,
  corridas_finalizadas INT NOT NULL DEFAULT 0,
  corridas_canceladas_motorista INT NOT NULL DEFAULT 0,
  corridas_encerradas_motorista INT NOT NULL DEFAULT 0,
  taxa_aceitacao DECIMAL(5,2) NOT NULL DEFAULT 0.00,
  taxa_cancelamento DECIMAL(5,2) NOT NULL DEFAULT 0.00,
  criado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  atualizado_em TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  CONSTRAINT fk_motorista_metricas_corridas_motorista FOREIGN KEY (id_motorista) REFERENCES usuarios(id) ON DELETE CASCADE,
  INDEX idx_motorista_metricas_aceitacao (taxa_aceitacao),
  INDEX idx_motorista_metricas_cancelamento (taxa_cancelamento)
);

ALTER TABLE motorista_metricas_corridas
  ADD COLUMN IF NOT EXISTS periodo_dias INT NOT NULL DEFAULT 30 AFTER id_motorista,
  ADD COLUMN IF NOT EXISTS periodo_inicio DATE NULL AFTER periodo_dias,
  ADD COLUMN IF NOT EXISTS periodo_fim DATE NULL AFTER periodo_inicio;
