81 lines
1.4 KiB
Python
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
|