Blame view

kf_sdk/models/user_details.py 5.93 KB
Evgeniy Pavlovskiy authored
1 2 3
# coding: utf-8

"""
Ravi Kumar authored
4
    Kappa-framework user microservices
Evgeniy Pavlovskiy authored
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 0.1.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import pprint
import re  # noqa: F401
import json
Ravi Kumar authored
20
from datetime import datetime
Evgeniy Pavlovskiy authored
21 22
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
Ravi Kumar authored
23 24
from kf_sdk.models.organization_details import OrganizationDetails
from kf_sdk.models.user_type_details import UserTypeDetails
Evgeniy Pavlovskiy authored
25 26 27 28 29 30 31
from typing import Optional, Set
from typing_extensions import Self

class UserDetails(BaseModel):
    """
    UserDetails
    """ # noqa: E501
Ravi Kumar authored
32 33
    user_id: StrictInt = Field(alias="userId")
    user_name: StrictStr = Field(alias="userName")
Evgeniy Pavlovskiy authored
34 35 36 37
    first_name: StrictStr = Field(alias="firstName")
    middle_name: Optional[StrictStr] = Field(alias="middleName")
    last_name: StrictStr = Field(alias="lastName")
    email: StrictStr
Ravi Kumar authored
38
    user_type_id: StrictInt = Field(alias="userTypeId")
Evgeniy Pavlovskiy authored
39
    org_id: StrictInt = Field(alias="orgId")
Ravi Kumar authored
40 41
    user_type_details: Optional[UserTypeDetails] = Field(default=None, alias="userTypeDetails")
    org_details: Optional[OrganizationDetails] = Field(default=None, alias="orgDetails")
Evgeniy Pavlovskiy authored
42
    profile_pic: Optional[StrictStr] = Field(default=None, alias="profilePic")
Ravi Kumar authored
43 44 45
    token: Optional[StrictStr] = None
    token_expiry_date: Optional[datetime] = Field(default=None, alias="tokenExpiryDate")
    __properties: ClassVar[List[str]] = ["userId", "userName", "firstName", "middleName", "lastName", "email", "userTypeId", "orgId", "userTypeDetails", "orgDetails", "profilePic", "token", "tokenExpiryDate"]
Evgeniy Pavlovskiy authored
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

    model_config = ConfigDict(
        populate_by_name=True,
        validate_assignment=True,
        protected_namespaces=(),
    )


    def to_str(self) -> str:
        """Returns the string representation of the model using alias"""
        return pprint.pformat(self.model_dump(by_alias=True))

    def to_json(self) -> str:
        """Returns the JSON representation of the model using alias"""
        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
        return json.dumps(self.to_dict())

    @classmethod
    def from_json(cls, json_str: str) -> Optional[Self]:
        """Create an instance of UserDetails from a JSON string"""
        return cls.from_dict(json.loads(json_str))

    def to_dict(self) -> Dict[str, Any]:
        """Return the dictionary representation of the model using alias.

        This has the following differences from calling pydantic's
        `self.model_dump(by_alias=True)`:

        * `None` is only added to the output dict for nullable fields that
          were set at model initialization. Other fields with value `None`
          are ignored.
        """
        excluded_fields: Set[str] = set([
        ])

        _dict = self.model_dump(
            by_alias=True,
            exclude=excluded_fields,
            exclude_none=True,
        )
Ravi Kumar authored
86 87 88 89 90 91
        # override the default output from pydantic by calling `to_dict()` of user_type_details
        if self.user_type_details:
            _dict['userTypeDetails'] = self.user_type_details.to_dict()
        # override the default output from pydantic by calling `to_dict()` of org_details
        if self.org_details:
            _dict['orgDetails'] = self.org_details.to_dict()
Evgeniy Pavlovskiy authored
92 93 94 95 96
        # set to None if middle_name (nullable) is None
        # and model_fields_set contains the field
        if self.middle_name is None and "middle_name" in self.model_fields_set:
            _dict['middleName'] = None
Ravi Kumar authored
97
        # set to None if user_type_details (nullable) is None
Evgeniy Pavlovskiy authored
98
        # and model_fields_set contains the field
Ravi Kumar authored
99 100
        if self.user_type_details is None and "user_type_details" in self.model_fields_set:
            _dict['userTypeDetails'] = None
Evgeniy Pavlovskiy authored
101
Ravi Kumar authored
102
        # set to None if org_details (nullable) is None
Evgeniy Pavlovskiy authored
103
        # and model_fields_set contains the field
Ravi Kumar authored
104 105
        if self.org_details is None and "org_details" in self.model_fields_set:
            _dict['orgDetails'] = None
Evgeniy Pavlovskiy authored
106
Ravi Kumar authored
107
        # set to None if profile_pic (nullable) is None
Evgeniy Pavlovskiy authored
108
        # and model_fields_set contains the field
Ravi Kumar authored
109 110
        if self.profile_pic is None and "profile_pic" in self.model_fields_set:
            _dict['profilePic'] = None
Evgeniy Pavlovskiy authored
111 112 113 114 115 116

        # set to None if token (nullable) is None
        # and model_fields_set contains the field
        if self.token is None and "token" in self.model_fields_set:
            _dict['token'] = None
Ravi Kumar authored
117
        # set to None if token_expiry_date (nullable) is None
Evgeniy Pavlovskiy authored
118
        # and model_fields_set contains the field
Ravi Kumar authored
119 120
        if self.token_expiry_date is None and "token_expiry_date" in self.model_fields_set:
            _dict['tokenExpiryDate'] = None
Evgeniy Pavlovskiy authored
121 122 123 124 125 126 127 128 129 130 131 132 133

        return _dict

    @classmethod
    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
        """Create an instance of UserDetails from a dict"""
        if obj is None:
            return None

        if not isinstance(obj, dict):
            return cls.model_validate(obj)

        _obj = cls.model_validate({
Ravi Kumar authored
134
            "userId": obj.get("userId"),
Evgeniy Pavlovskiy authored
135 136 137 138 139 140 141
            "userName": obj.get("userName"),
            "firstName": obj.get("firstName"),
            "middleName": obj.get("middleName"),
            "lastName": obj.get("lastName"),
            "email": obj.get("email"),
            "userTypeId": obj.get("userTypeId"),
            "orgId": obj.get("orgId"),
Ravi Kumar authored
142 143 144
            "userTypeDetails": UserTypeDetails.from_dict(obj["userTypeDetails"]) if obj.get("userTypeDetails") is not None else None,
            "orgDetails": OrganizationDetails.from_dict(obj["orgDetails"]) if obj.get("orgDetails") is not None else None,
            "profilePic": obj.get("profilePic"),
Evgeniy Pavlovskiy authored
145
            "token": obj.get("token"),
Ravi Kumar authored
146
            "tokenExpiryDate": obj.get("tokenExpiryDate")
Evgeniy Pavlovskiy authored
147 148 149 150
        })
        return _obj