Документация Accelera

Дефолтные и персональные сущности

В этом разделе описано, как работает функционал Дефолтных и Персональных сущностей.

Дефолтные сущности

Дефолтные сущности создаются для того, чтобы при запросе сущностей по пользователю возвращать данные, если в базе данных (БД) отсутствуют соответствующие записи, но их нужно вернуть в ответе.

Как сделать сущность дефолтной

Чтобы сущность стала Дефолтной, необходимо установить флаг is_default = True в Окне создания сущности и заполнить поля, которые будут использоваться в качестве значений по умолчанию.

Пример создания дефолтной сущности

Пример дефолтных параметров при создании сущности task

После создания дефолтной сущности, при запросе списка заданий вместо пустого объекта будет возвращена Дефолтная сущность задания с заполненными значениями.

{
  "timestamp": "1713800339125",
  "environment_id": "ruwiki",
  "reference_environment_id": "",
  "reference_title": "",
  "notes": "",
  "id": "paket_1",
  "title": "Пакет №1",
  "short_description": "10 Патрулирований и 1 опубликованная статья",
  "full_description": "Совершите 10 Патрулирований и опубликуйте 1 статью, чтобы получить 30 очков опыта.",
  "max": null,
  "progress_type": "discrete",
  "status": "in progress",
  "progress": 0,
  "details": "30",
  "expired_at": null,
  "position": 1,
  "additional": {
    "task_type": "paket",
    "task_image": "https://w7.pngwing.com/pngs/504/886/png-transparent-gift-computer-icons-box-gift-love-miscellaneous-ribbon.png",
    "task_structure": [
      {
        "max": 10,
        "complete": "0",
        "description": "10 правок патрулирования"
      },
      {
        "max": 1,
        "complete": "0",
        "description": "1 публикация"
      }
    ]
  }
}

Персональные сущности

Персональные сущности отдаются при запросе, если соответствующая запись существует в базе данных. Если ID персональной сущности совпадает с ID дефолтной, возвращается только персональная сущность.

Как создается персональная сущность

Персональная сущность появляется, когда для пользователя выполняется метод создания или изменения сущности.

Например, если изменить один из параметров сущности (например, status на completed), она станет персональной, и в базе данных появится соответствующая запись.

Пример:
Допустим, у пользователя есть сущность Task — «Совершите любые покупки 3 дня подряд». В условиях выполнения задания есть поле progress, которое увеличивается на 1 каждый день. При первом запросе сущность будет дефолтной с progress = 0. Когда пользователь совершит покупку, progressувеличится на 1, сущность станет персональной, и в базе данных появится запись.

Отличие персональной от дефолтной сущности

  • Дефолтные сущности:
    • Используются, если стоит флаг default = true, а в базе данных нет записей для пользователя.
    • Возвращают данные, указанные по умолчанию.
  • Персональные сущности:
    • Создаются при изменении или создании сущности для пользователя.
    • Хранятся в базе данных по схеме: {{environment_id}}.{{название сущности}} (например, env_test.tasks).
    • Содержат данные, специфичные для пользователя, а не значения по умолчанию.

На этой странице