File size: 891 Bytes
366c43e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from enum import Enum
from typing import List, Optional
from pydantic import BaseModel
from app.models.resume import ResumeData
from app.models.score import ATSScore
from app.models.analysis import BulletAnalysis, SafetyScan, KeywordPlacement


class Intensity(str, Enum):
    CONSERVATIVE = "conservative"
    MODERATE = "moderate"
    AGGRESSIVE = "aggressive"


class Change(BaseModel):
    type: str  # "added", "modified", "reordered"
    location: str  # e.g., "experience[0].bullets[2]"
    before: str = ""
    after: str = ""


class CustomizationResult(BaseModel):
    original: ResumeData
    customized: ResumeData
    changes: List[Change] = []
    original_score: ATSScore
    customized_score: ATSScore

    # Enhanced analysis fields
    bullet_analysis: List[BulletAnalysis] = []
    safety_scan: Optional[SafetyScan] = None
    keyword_quality: List[KeywordPlacement] = []