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 TokenRefresh(Schema): refresh: str class TokenRefreshResponse(Schema): access: str refresh: str