from dataclasses import dataclass, field from typing import Optional, List from marshmallow import validate from models.user import User from shared.schemas import LabelSchema import marshmallow_dataclass from api import ma @dataclass class UserModel: id: int externalId: str name: str phone: Optional[str] email: str isAdmin: bool dateTimeFormat: int def __init__(self, user: User): self.name = user.name self.phone = user.phone self.id = user.id self.externalId = user.external_id self.email = user.email self.isAdmin = user.is_admin self.dateTimeFormat = user.date_time_format user_model_response = marshmallow_dataclass.class_schema( UserModel, base_schema=ma.Schema ) @dataclass class UserResponseModel: currentUser: UserModel labels: List[Optional[LabelSchema]] projectsCount: int @dataclass class UpdateUserParams: phone: Optional[str] dateTimeFormat: Optional[int] = field(metadata={"validate": validate.Range(min=1, max=4)}) @dataclass class AtlasUserParams: id: str