from typing import Any, TypeVar, Union, cast from uuid import UUID from attrs import define as _attrs_define from attrs import field as _attrs_field from ..types import UNSET, Unset T = TypeVar("T", bound="PatchedAccount") @_attrs_define class PatchedAccount: """ Attributes: uuid (Union[Unset, UUID]): username (Union[None, Unset, str]): Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only. email (Union[Unset, str]): phone_number (Union[Unset, str]): first_name (Union[Unset, str]): last_name (Union[Unset, str]): name (Union[Unset, str]): avatar (Union[None, Unset, str]): iban (Union[None, Unset, str]): iban_verified (Union[None, Unset, bool]): province (Union[None, Unset, int]): province_name (Union[Unset, str]): city (Union[None, Unset, int]): city_name (Union[Unset, str]): postal_code (Union[None, Unset, str]): address (Union[None, Unset, str]): """ uuid: Union[Unset, UUID] = UNSET username: Union[None, Unset, str] = UNSET email: Union[Unset, str] = UNSET phone_number: Union[Unset, str] = UNSET first_name: Union[Unset, str] = UNSET last_name: Union[Unset, str] = UNSET name: Union[Unset, str] = UNSET avatar: Union[None, Unset, str] = UNSET iban: Union[None, Unset, str] = UNSET iban_verified: Union[None, Unset, bool] = UNSET province: Union[None, Unset, int] = UNSET province_name: Union[Unset, str] = UNSET city: Union[None, Unset, int] = UNSET city_name: Union[Unset, str] = UNSET postal_code: Union[None, Unset, str] = UNSET address: Union[None, Unset, str] = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: uuid: Union[Unset, str] = UNSET if not isinstance(self.uuid, Unset): uuid = str(self.uuid) username: Union[None, Unset, str] if isinstance(self.username, Unset): username = UNSET else: username = self.username email = self.email phone_number = self.phone_number first_name = self.first_name last_name = self.last_name name = self.name avatar: Union[None, Unset, str] if isinstance(self.avatar, Unset): avatar = UNSET else: avatar = self.avatar iban: Union[None, Unset, str] if isinstance(self.iban, Unset): iban = UNSET else: iban = self.iban iban_verified: Union[None, Unset, bool] if isinstance(self.iban_verified, Unset): iban_verified = UNSET else: iban_verified = self.iban_verified province: Union[None, Unset, int] if isinstance(self.province, Unset): province = UNSET else: province = self.province province_name = self.province_name city: Union[None, Unset, int] if isinstance(self.city, Unset): city = UNSET else: city = self.city city_name = self.city_name postal_code: Union[None, Unset, str] if isinstance(self.postal_code, Unset): postal_code = UNSET else: postal_code = self.postal_code address: Union[None, Unset, str] if isinstance(self.address, Unset): address = UNSET else: address = self.address field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update({}) if uuid is not UNSET: field_dict["uuid"] = uuid if username is not UNSET: field_dict["username"] = username if email is not UNSET: field_dict["email"] = email if phone_number is not UNSET: field_dict["phone_number"] = phone_number if first_name is not UNSET: field_dict["first_name"] = first_name if last_name is not UNSET: field_dict["last_name"] = last_name if name is not UNSET: field_dict["name"] = name if avatar is not UNSET: field_dict["avatar"] = avatar if iban is not UNSET: field_dict["iban"] = iban if iban_verified is not UNSET: field_dict["iban_verified"] = iban_verified if province is not UNSET: field_dict["province"] = province if province_name is not UNSET: field_dict["province_name"] = province_name if city is not UNSET: field_dict["city"] = city if city_name is not UNSET: field_dict["city_name"] = city_name if postal_code is not UNSET: field_dict["postal_code"] = postal_code if address is not UNSET: field_dict["address"] = address return field_dict @classmethod def from_dict(cls: type[T], src_dict: dict[str, Any]) -> T: d = src_dict.copy() _uuid = d.pop("uuid", UNSET) uuid: Union[Unset, UUID] if isinstance(_uuid, Unset): uuid = UNSET else: uuid = UUID(_uuid) def _parse_username(data: object) -> Union[None, Unset, str]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, str], data) username = _parse_username(d.pop("username", UNSET)) email = d.pop("email", UNSET) phone_number = d.pop("phone_number", UNSET) first_name = d.pop("first_name", UNSET) last_name = d.pop("last_name", UNSET) name = d.pop("name", UNSET) def _parse_avatar(data: object) -> Union[None, Unset, str]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, str], data) avatar = _parse_avatar(d.pop("avatar", UNSET)) def _parse_iban(data: object) -> Union[None, Unset, str]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, str], data) iban = _parse_iban(d.pop("iban", UNSET)) def _parse_iban_verified(data: object) -> Union[None, Unset, bool]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, bool], data) iban_verified = _parse_iban_verified(d.pop("iban_verified", UNSET)) def _parse_province(data: object) -> Union[None, Unset, int]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, int], data) province = _parse_province(d.pop("province", UNSET)) province_name = d.pop("province_name", UNSET) def _parse_city(data: object) -> Union[None, Unset, int]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, int], data) city = _parse_city(d.pop("city", UNSET)) city_name = d.pop("city_name", UNSET) def _parse_postal_code(data: object) -> Union[None, Unset, str]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, str], data) postal_code = _parse_postal_code(d.pop("postal_code", UNSET)) def _parse_address(data: object) -> Union[None, Unset, str]: if data is None: return data if isinstance(data, Unset): return data return cast(Union[None, Unset, str], data) address = _parse_address(d.pop("address", UNSET)) patched_account = cls( uuid=uuid, username=username, email=email, phone_number=phone_number, first_name=first_name, last_name=last_name, name=name, avatar=avatar, iban=iban, iban_verified=iban_verified, province=province, province_name=province_name, city=city, city_name=city_name, postal_code=postal_code, address=address, ) patched_account.additional_properties = d return patched_account @property def additional_keys(self) -> list[str]: return list(self.additional_properties.keys()) def __getitem__(self, key: str) -> Any: return self.additional_properties[key] def __setitem__(self, key: str, value: Any) -> None: self.additional_properties[key] = value def __delitem__(self, key: str) -> None: del self.additional_properties[key] def __contains__(self, key: str) -> bool: return key in self.additional_properties