import { Injectable } from '@nestjs/common'
import { AiService } from '../ai/ai.service'

@Injectable()
export class AnalyzeService {
  constructor(private aiService: AiService) {}

  async diagnose(content: string) {
    const result = await this.aiService.call({
      systemPrompt: `你是一位专业的简历评估专家。分析以下简历内容，给出评估。必须使用以下JSON格式输出，不要多余内容：
{
  "score": 0-100,
  "issues": [
    { "level": "high|medium|low", "title": "问题标题", "desc": "问题描述" }
  ],
  "suggestions": ["建议1", "建议2", "建议3", "建议4"]
}`,
      userMessage: `请分析以下简历：\n\n${content}`,
      temperature: 0.5,
      maxTokens: 2048,
    })

    try {
      return JSON.parse(result)
    } catch {
      return {
        score: 60,
        issues: [{ level: 'medium', title: 'AI 分析异常', desc: '无法解析完整结果，建议重试' }],
        suggestions: ['请重新提交简历进行诊断'],
      }
    }
  }

  async optimize(content: string, direction: string) {
    const result = await this.aiService.call({
      systemPrompt: `你是一位资深的简历优化专家。按照用户指定的优化方向，优化以下简历内容。
优化方向: ${direction}
输出格式：
{
  "optimized": "优化后的简历全文",
  "changes": ["改动1", "改动2", ...]
}`,
      userMessage: `原始简历：\n\n${content}\n\n优化方向：${direction}`,
      temperature: 0.6,
      maxTokens: 3072,
    })

    try {
      return JSON.parse(result)
    } catch {
      return {
        optimized: content,
        changes: ['AI 优化异常，返回原始内容'],
      }
    }
  }
}
