# Purpose: User schema for pydantic (validation, inside-api usage) from datetime import datetime from pydantic import BaseModel, EmailStr, Field from typing import Optional 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, min_length=3, max_length=50) LastName: str = Field(..., min_length=3, max_length=50) ContactNumber: str = Field(..., min_length=12, max_length=12) BirthDate: datetime = Field(...) Email: EmailStr = Field(...) Role: str = Field(..., min_length=3, max_length=50) class ShowUser(BaseModel): Id: int Name: str MiddleName: str | None LastName: str ContactNumber: str BirthDate: datetime Email: EmailStr Role: str class Config: orm_mode = True validate_assignment = True