from datetime import datetime
from typing import Optional
from pydantic import BaseModel


class RecruitmentCreate(BaseModel):
    title: str
    description: Optional[str] = None
    requirements: Optional[str] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None


    requirements: Optional[str] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None


class RecruitmentUpdate(BaseModel):
    title: Optional[str] = None
    description: Optional[str] = None
    requirements: Optional[str] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None


class RecruitmentResponse(BaseModel):
    id: int
    company_id: int
    title: str
    description: Optional[str] = None
    requirements: Optional[str] = None
    responsibilities: Optional[str] = None
    preferred_qualifications: Optional[str] = None
    benefits: Optional[str] = None
    employment_type: Optional[str] = None
    salary_range: Optional[str] = None
    location: Optional[str] = None
    skills: Optional[list] = None
    embedding_id: Optional[str] = None
    created_at: Optional[datetime] = None
    updated_at: Optional[datetime] = None

    model_config = {"from_attributes": True}
