25 lines
808 B
Python
25 lines
808 B
Python
from pydantic import BaseModel, Field, EmailStr
|
|
from typing import Optional
|
|
from datetime import datetime
|
|
import uuid
|
|
|
|
class PersonBase(BaseModel):
|
|
name: str = Field(..., description="Person's name")
|
|
email: EmailStr = Field(..., description="Person's email address")
|
|
phone_number: Optional[str] = Field(None, description="Person's phone number")
|
|
|
|
class PersonCreate(PersonBase):
|
|
pass
|
|
|
|
class PersonUpdate(PersonBase):
|
|
name: Optional[str] = Field(None, description="Person's name")
|
|
email: Optional[EmailStr] = Field(None, description="Person's email address")
|
|
phone_number: Optional[str] = Field(None, description="Person's phone number")
|
|
|
|
class PersonSchema(PersonBase):
|
|
id: uuid.UUID
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
class Config:
|
|
orm_mode = True |