38 lines
880 B
Python
38 lines
880 B
Python
from datetime import date
|
|
|
|
from pydantic import BaseModel, EmailStr, ConfigDict
|
|
from fastapi import Query
|
|
|
|
|
|
class SUserLogin(BaseModel):
|
|
email_or_username: EmailStr | str
|
|
password: str
|
|
|
|
|
|
class SUserRegister(BaseModel):
|
|
email: EmailStr
|
|
username: str = Query(None, min_length=2, max_length=30)
|
|
password: str = Query(None, min_length=8)
|
|
date_of_birth: date
|
|
|
|
|
|
class SUser(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
email: EmailStr
|
|
id: int
|
|
username: str
|
|
avatar_image: str
|
|
black_phoenix: bool
|
|
date_of_birth: date
|
|
date_of_registration: date
|
|
|
|
|
|
class SUserName(BaseModel):
|
|
username: str = Query(None, min_length=2, max_length=30)
|
|
|
|
|
|
class SUserPassword(BaseModel):
|
|
password: str = Query(None, min_length=8)
|
|
new_password: str = Query(None, min_length=8)
|
|
new_password2: str = Query(None, min_length=8)
|