from pydantic import BaseModel
from typing import List, Optional, Any, Dict


class JobQueryRequest(BaseModel):
    job_description: str


class ChatRequest(BaseModel):
    question: str
    system_prompt: Optional[str] = ""


class ResumeParseRequest(BaseModel):
    job_emp_id: str


class ChatResponse(BaseModel):
    question: str
    system_prompt: str
    answer: str


class ResumeParseResponse(BaseModel):
    success: bool
    total_files: int
    results: List[Dict[str, Any]]


class ResumeMatch(BaseModel):
    resume_id: str
    name: Optional[str]
    match_score: float
    strengths: List[str]
    weaknesses: List[str]


class SearchResponse(BaseModel):
    results: List[ResumeMatch]


class OfferLetterRequest(BaseModel):
    candidate_name: str
    job_title: str
    department: str
    company_name: str
    start_date: str
    salary: str
    employment_type: str
    benefits: str


class OfferLetterResponse(BaseModel):
    success: bool
    offer_letter: Optional[str] = None
    error: Optional[str] = None
