admin-panel-backend/utils/clients/gooyal_advertising_client/models/ticket.py
2026-06-07 11:34:17 +03:30

126 lines
3.3 KiB
Python

import datetime
from collections.abc import Mapping
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 dateutil.parser import isoparse
from .ticket_state_enum import TicketStateEnum
from ..types import UNSET, Unset
T = TypeVar("T", bound="Ticket")
@_attrs_define
class Ticket:
"""
Attributes:
uuid (UUID):
user (UUID):
title (str):
state (TicketStateEnum): * `1` - INIT
* `10` - CLOSED
created_at (datetime.datetime):
updated_at (datetime.datetime):
description (Union[None, Unset, str]):
"""
uuid: UUID
user: UUID
title: str
state: TicketStateEnum
created_at: datetime.datetime
updated_at: datetime.datetime
description: Union[None, Unset, str] = UNSET
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
def to_dict(self) -> dict[str, Any]:
uuid = str(self.uuid)
user = str(self.user)
title = self.title
state = self.state.value
created_at = self.created_at.isoformat()
updated_at = self.updated_at.isoformat()
description: Union[None, Unset, str]
if isinstance(self.description, Unset):
description = UNSET
else:
description = self.description
field_dict: dict[str, Any] = {}
field_dict.update(self.additional_properties)
field_dict.update(
{
"uuid": uuid,
"user": user,
"title": title,
"state": state,
"created_at": created_at,
"updated_at": updated_at,
}
)
if description is not UNSET:
field_dict["description"] = description
return field_dict
@classmethod
def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
d = dict(src_dict)
uuid = UUID(d.pop("uuid"))
user = UUID(d.pop("user"))
title = d.pop("title")
state = TicketStateEnum(d.pop("state"))
created_at = isoparse(d.pop("created_at"))
updated_at = isoparse(d.pop("updated_at"))
def _parse_description(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)
description = _parse_description(d.pop("description", UNSET))
ticket = cls(
uuid=uuid,
user=user,
title=title,
state=state,
created_at=created_at,
updated_at=updated_at,
description=description,
)
ticket.additional_properties = d
return ticket
@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