-- Tabela para armazenar registros de uso da API de IA
CREATE TABLE IF NOT EXISTS ai_api_usage (
  id INT AUTO_INCREMENT PRIMARY KEY,
  user_id VARCHAR(50) NULL COMMENT 'ID do usuário que fez a requisição (se aplicável)',
  endpoint VARCHAR(100) NOT NULL COMMENT 'Endpoint chamado (ex: chat/completions, embeddings)',
  prompt_tokens INT NOT NULL DEFAULT 0 COMMENT 'Número de tokens utilizados na requisição',
  completion_tokens INT NOT NULL DEFAULT 0 COMMENT 'Número de tokens utilizados na resposta',
  total_tokens INT NOT NULL DEFAULT 0 COMMENT 'Total de tokens utilizados',
  timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Data e hora da operação',
  status VARCHAR(50) NOT NULL DEFAULT 'success' COMMENT 'Status da operação (success, error)',
  error_message TEXT NULL COMMENT 'Mensagem de erro (se houver)',
  model VARCHAR(50) NULL COMMENT 'Modelo utilizado (ex: gpt-3.5-turbo)',
  source VARCHAR(50) NOT NULL COMMENT 'Script que fez a chamada',
  request_data TEXT NULL COMMENT 'Dados da requisição (JSON)',
  response_data TEXT NULL COMMENT 'Dados da resposta (JSON)',
  cost DECIMAL(10,6) NULL COMMENT 'Custo estimado da operação'
);

-- Índices para melhorar a performance das consultas
CREATE INDEX idx_ai_api_usage_timestamp ON ai_api_usage(timestamp);
CREATE INDEX idx_ai_api_usage_endpoint ON ai_api_usage(endpoint);
CREATE INDEX idx_ai_api_usage_status ON ai_api_usage(status);
CREATE INDEX idx_ai_api_usage_source ON ai_api_usage(source);
