Files
main_backend/cpv3/modules/users/schemas.py
T
2026-02-27 23:33:56 +03:00

81 lines
1.4 KiB
Python

from __future__ import annotations
from datetime import datetime
from uuid import UUID
from cpv3.common.schemas import Schema
class UserRead(Schema):
id: UUID
username: str
email: str
first_name: str
last_name: str
phone_number: str | None
avatar: str | None
email_verified: bool
phone_verified: bool
is_active: bool
is_staff: bool
is_superuser: bool
date_joined: datetime
created_at: datetime
updated_at: datetime
class UserCreate(Schema):
username: str
email: str
password: str
first_name: str = ""
last_name: str = ""
phone_number: str | None = None
avatar: str | None = None
class UserUpdate(Schema):
first_name: str | None = None
last_name: str | None = None
email: str | None = None
phone_number: str | None = None
avatar: str | None = None
class UserRegister(Schema):
username: str
email: str
password: str
first_name: str = ""
last_name: str = ""
phone_number: str | None = None
avatar: str | None = None
class UserLogin(Schema):
username: str
password: str
class UserRegisterResponse(Schema):
user: UserRead
access: str
refresh: str
class PasswordChange(Schema):
current_password: str
new_password: str
class TokenRefresh(Schema):
refresh: str
class TokenRefreshResponse(Schema):
access: str
refresh: str