package models // CriterionScore holds the evaluation result for a single job requirement criterion. // Trace: SDD_LLD_0016 - Maps individual criteria scores to specific data fields // Trace: SDD_HLD_0009 - Decompose output into job description criteria-based subsections // Trace: SDD_HLD_0010 - Generate graded subsection categories on scale from 1-10 type CriterionScore struct { Criterion string `json:"criterion"` Score int `json:"score"` Evidence string `json:"evidence"` Comments string `json:"comments"` } // Recommendation holds the overall fit label and rationale for the candidate. type Recommendation struct { Label string `json:"label"` Rationale string `json:"rationale"` } // GrammarSpelling holds grammar and spelling evaluation results // Trace: SDD_LLD_0018 - Parse grammar/spelling evaluation // Trace: SRD_FuncReq_0010 - Grade resume's grammar and spelling on 0-10 scale // Trace: SRD_FuncReq_0011 - Suggest grammar corrections type GrammarSpelling struct { Score int `json:"score"` // 0-10 rating of grammar/spelling quality IssuesFound []string `json:"issues_found"` // Specific grammar/spelling issues identified Corrections []string `json:"corrections"` // Suggested corrections } // AnalysisResult is the full response returned by the analyze endpoint. // It mirrors the ResumeAnalysisResult TypeScript type on the frontend. // Trace: SDD_LLD_0015 - Extracts total score and summary from raw AI response // Trace: SDD_LLD_0016 - Maps individual criteria scores to specific data fields // Trace: SDD_LLD_0017 - Converts AI-generated text blocks into formatted arrays // Trace: SDD_LLD_0018 - Parse grammar/spelling evaluation // Trace: SDD_LLD_0019 - Marshals completed evaluation data structure into JSON // Trace: SDD_HLD_0011 - Generate strengths and weaknesses found in resumes // Trace: SDD_HLD_0012 - Generate grammar and spelling score and corrections type AnalysisResult struct { OverallScore int `json:"overall_score"` Summary string `json:"summary"` CriteriaScores []CriterionScore `json:"criteria_scores"` Strengths []string `json:"strengths"` Weaknesses []string `json:"weaknesses"` MissingInformation []string `json:"missing_information"` GrammarSpelling GrammarSpelling `json:"grammar_spelling"` // Trace: SRD_FuncReq_0010, SRD_FuncReq_0011 Recommendation Recommendation `json:"recommendation"` InjectionDetected bool `json:"injection_detected"` // Trace: SRD_NonFuncReq_0010, SDD_LLD_0009 InjectionDetails string `json:"injection_details"` // Trace: SRD_QualAssurReq_0005 }