from pydantic import BaseModel from typing import Optional from datetime import datetime, date from decimal import Decimal from app.models.employees import EmploymentStatus class EmployeeBase(BaseModel): employee_id: str department_id: Optional[int] = None position: str salary: Optional[Decimal] = None hire_date: date phone: Optional[str] = None address: Optional[str] = None emergency_contact: Optional[str] = None emergency_phone: Optional[str] = None class EmployeeCreate(EmployeeBase): user_id: int class EmployeeUpdate(BaseModel): department_id: Optional[int] = None position: Optional[str] = None salary: Optional[Decimal] = None status: Optional[EmploymentStatus] = None phone: Optional[str] = None address: Optional[str] = None emergency_contact: Optional[str] = None emergency_phone: Optional[str] = None class Employee(EmployeeBase): id: int user_id: int status: EmploymentStatus created_at: datetime updated_at: Optional[datetime] = None class Config: from_attributes = True