from pydantic import BaseModel, Field
from typing import Optional
from arbor_imago import custom_types, config
from arbor_imago.schemas import FromAttributes
[docs]
class UserImport(BaseModel):
phone_number: Optional[custom_types.User.phone_number] = None
username: Optional[custom_types.User.username] = None
password: Optional[custom_types.User.password] = None
[docs]
class UserUpdate(UserImport):
email: Optional[custom_types.User.email] = None
[docs]
class UserAdminUpdate(UserUpdate):
user_role_id: Optional[custom_types.User.user_role_id] = None
[docs]
class UserCreate(UserImport):
email: custom_types.User.email
[docs]
class UserAdminCreate(UserCreate):
user_role_id: custom_types.User.user_role_id = config.USER_ROLE_NAME_MAPPING['user']
[docs]
class UserExport(FromAttributes):
id: custom_types.User.id
username: Optional[custom_types.User.username] = None
[docs]
class UserPublic(UserExport):
pass
[docs]
class UserPrivate(UserExport):
email: custom_types.User.email
user_role_id: custom_types.User.user_role_id