from typing import Optional from pydantic import BaseModel, Field from datetime import date from .enums import Gender, Role class UserBase(BaseModel): email: str = Field(description="Email of user", example="datvip@gmail.com") class UserLogin(UserBase): password: str class UserInfo(BaseModel): name: str birthdate: date | None = Field(example="2000-01-01") phone_number: str | None = Field(example="0382929292") gender: Gender role: Role = Role.user class UserSignup(UserLogin, UserInfo): pass class User(UserBase, UserInfo): pass