Исходный код amocrm.models.tasks

from __future__ import annotations

from dataclasses import dataclass
from typing import Any

_TASK_SCALAR_FIELDS = (
    "id",
    "text",
    "complete_till",
    "task_type_id",
    "responsible_user_id",
    "is_completed",
    "entity_id",
    "entity_type",
    "duration",
    "created_by",
    "updated_by",
    "created_at",
    "updated_at",
    "group_id",
    "account_id",
)


[документация] @dataclass(kw_only=True) class Task: """DTO-модель задачи AmoCRM. Attributes: id: Идентификатор задачи. text: Текст задачи. complete_till: Срок выполнения (Unix timestamp). task_type_id: Идентификатор типа задачи. responsible_user_id: Идентификатор ответственного пользователя. is_completed: Признак выполненной задачи. entity_id: Идентификатор связанной сущности. entity_type: Тип связанной сущности (``"leads"``, ``"contacts"`` и др.). duration: Длительность задачи (в секундах). created_by: Идентификатор пользователя, создавшего задачу. updated_by: Идентификатор пользователя, обновившего задачу. created_at: Дата создания (Unix timestamp). updated_at: Дата последнего изменения (Unix timestamp). group_id: Идентификатор группы пользователей. account_id: Идентификатор аккаунта AmoCRM. result: Результат выполнения задачи вида ``{"text": "..."}``. """ id: int | None = None text: str | None = None complete_till: int | None = None task_type_id: int | None = None responsible_user_id: int | None = None is_completed: bool | None = None entity_id: int | None = None entity_type: str | None = None duration: int | None = None created_by: int | None = None updated_by: int | None = None created_at: int | None = None updated_at: int | None = None group_id: int | None = None account_id: int | None = None result: dict[str, Any] | None = None
[документация] @classmethod def from_dict(cls, data: dict[str, Any]) -> Task: """Создать экземпляр из словаря API AmoCRM.""" return cls( **{k: data.get(k) for k in _TASK_SCALAR_FIELDS}, result=data.get("result"), )
[документация] def to_dict(self) -> dict[str, Any]: """Сериализовать в словарь для API, исключая поля со значением ``None``.""" result: dict[str, Any] = { k: getattr(self, k) for k in _TASK_SCALAR_FIELDS if getattr(self, k) is not None } if self.result is not None: result["result"] = self.result return result