polyticket-api/poly-ticket-api-client/poly_ticket_api_client/models/document.py

106 lines
2.7 KiB
Python

from collections.abc import Mapping
from typing import Any, TypeVar
from attrs import define as _attrs_define
from attrs import field as _attrs_field
from .. import types
from ..models.document_type_enum import DocumentTypeEnum
T = TypeVar("T", bound="Document")
@_attrs_define
class Document:
"""Serializer for `Document` model
Attributes:
id (int):
is_active (bool):
type_ (DocumentTypeEnum): * `privacy_policy` - Privacy policy
* `terms_of_service` - Terms of service
* `imprint` - Imprint
file (str):
"""
id: int
is_active: bool
type_: DocumentTypeEnum
file: str
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
def to_dict(self) -> dict[str, Any]:
id = self.id
is_active = self.is_active
type_ = self.type_.value
file = self.file
field_dict: dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
{
"id": id,
"is_active": is_active,
"type": type_,
"file": file,
}
)
return field_dict
def to_multipart(self) -> types.RequestFiles:
files: types.RequestFiles = []
files.append(("id", (None, str(self.id).encode(), "text/plain")))
files.append(("is_active", (None, str(self.is_active).encode(), "text/plain")))
files.append(("type", (None, str(self.type_.value).encode(), "text/plain")))
files.append(("file", (None, str(self.file).encode(), "text/plain")))
for prop_name, prop in self.additional_properties.items():
files.append((prop_name, (None, str(prop).encode(), "text/plain")))
return files
@classmethod
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
d = dict(src_dict)
id = d.pop("id")
is_active = d.pop("is_active")
type_ = DocumentTypeEnum(d.pop("type"))
file = d.pop("file")
document = cls(
id=id,
is_active=is_active,
type_=type_,
file=file,
)
document.additional_properties = d
return document
@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