from datetime import datetime
from typing import Optional
from pydantic import BaseModel


class CandidateCreate(BaseModel):
    name: Optional[str] = None
    email: Optional[str] = None
    phone: Optional[str] = None
    portfolio_url: Optional[str] = None
    desired_salary: Optional[str] = None
    desired_position: Optional[str] = None
    resume_text: Optional[str] = None
    phone: Optional[str] = None
    portfolio_url: Optional[str] = None
    desired_salary: Optional[str] = None
    desired_position: Optional[str] = None


class CandidateResponse(BaseModel):
    id: int
    company_id: int
    name: Optional[str] = None
    email: Optional[str] = None
    phone: Optional[str] = None
    portfolio_url: Optional[str] = None
    desired_salary: Optional[str] = None
    desired_position: Optional[str] = None
    parsed_data: Optional[dict] = None
    embedding_id: Optional[str] = None
    created_at: Optional[datetime] = None

    model_config = {"from_attributes": True}


class ParseRequest(BaseModel):
    resume_text: str


class ParseResponse(BaseModel):
    parsed_data: dict
    embedding_id: Optional[str] = None
