Действия библиотеки#

Область действия#

  • Действия определяют baseline операций для записей библиотеки и тегов библиотеки.

Действия для записей#

  • create

    • Начинается с выбора content_type.
    • Core автоматически заполняет системные поля (id, library_id, created_at, updated_at).
    • Core устанавливает status=inbox и пустой priority по умолчанию.
  • edit

    • Обновляет пользовательские поля.
    • Обновляет updated_at.
  • set-subtype

    • Устанавливает или очищает content_subtype.
    • НЕ ДОЛЖЕН менять content_type.
    • Обновляет updated_at.
  • set-status

    • Устанавливает status из разрешенного набора.
    • Переходы свободные (без жесткой state-machine).
    • ДОЛЖЕН обновлять status_changed_at.
    • НЕ ДОЛЖЕН обновлять updated_at.
  • set-priority

    • Устанавливает/меняет/очищает priority.
    • Обновляет updated_at.
  • set-rating

    • Устанавливает/меняет/очищает rating.
    • При задании оценки диапазон значения: 1..10.
    • Обновляет updated_at.
  • set-recommendation

    • Устанавливает/меняет/очищает recommendation.
    • Разрешенные значения: recommended | neutral | not_recommended.
    • Обновляет updated_at.
  • toggle-favorite

    • Устанавливает favorite=true/false.
    • НЕ ДОЛЖЕН обновлять updated_at.
  • archive / unarchive

    • Устанавливает archived=true/false.
    • НЕ ДОЛЖЕН обновлять updated_at.
  • link-parent / unlink-parent

    • Устанавливает/очищает parent_content_id.
    • Родитель ДОЛЖЕН существовать в той же библиотеке.
    • Self-link запрещен.
    • Обновляет updated_at.
  • delete

    • Перед удалением система ДОЛЖНА показывать связанные объекты.
    • Пользователь МОЖЕТ отменить удаление и разобрать связи вручную.
    • Если пользователь подтверждает force-delete, связанные ссылки обнуляются (null).
    • Связи с тегами удаляются.
    • Запись удаляется (hard delete).

Действия для тегов#

  • assign-tags / unassign-tags

    • Добавляет/удаляет связи запись-тег.
    • Дубли связей запрещены.
    • Теги должны принадлежать той же библиотеке.
    • НЕ ДОЛЖЕН обновлять updated_at записи.
  • create-tag

    • Создает тег уровня библиотеки с уникальным внутренним key.
    • Точные дубли label в одной библиотеке запрещены.
  • edit-tag

    • Обновляет label/color/icon тега.
    • key остается неизменяемым.
    • Конфликт label запрещен.
  • delete-tag

    • Hard delete.
    • Удаляет тег и все связи тег-контент.
    • НЕ ДОЛЖЕН удалять записи контента.
  • merge-tags

    • Переносит все связи source-тега в target-тег.
    • Дубли связей схлопываются.
    • Source-тег удаляется (hard delete).

Действия для вложений#

  • add-attachment

    • Добавляет reference-вложение файла к записи контента.
  • remove-attachment

    • Удаляет reference-вложение файла у записи контента.
  • update-attachment

    • Обновляет метаданные вложения (name, mime, uri и т.д.).