# Purpose: User schema for pydantic (validation, inside-api usage) from pydantic import BaseModel, EmailStr, Field class UserCreate(BaseModel): Email: EmailStr Password: str = Field(..., min_length=7, max_length=20) Name: str = Field(..., min_length=3, max_length=50) MiddleName: str = Field(None) LastName: str = Field(..., min_length=3, max_length=50) ContactNumber: str = Field(..., min_length=12, max_length=12) GovernmentId: str = Field(...) Address: str = Field(...) Email: EmailStr = Field(...) Role: str = Field(...) class DriverCreate(UserCreate): DrivingLicenseNumber: str = Field(...) class ShowUser(BaseModel): Id: int Name: str MiddleName: str | None LastName: str ContactNumber: str GovernmentId: str Address: str Email: EmailStr Role: str class Config: orm_mode = True validate_assignment = True class ShowDriverNoVehicle(ShowUser): DrivingLicenseNumber: str | None from schemas.vehicle import OutputVehicle class ShowDriver(ShowUser): DrivingLicenseNumber: str | None AssignedVehicle: OutputVehicle | None