Поля контента#
Классы полей#
- Поля класса
system управляются core и НЕ ДОЛЖНЫ редактироваться пользователем вручную. - Поля класса
user_editable видимы и редактируемы пользователем. - Поля класса
computed вычисляются core и ДОЛЖНЫ рассматриваться как read-only.
Базовый набор общих полей#
system#
id - неизменяемый идентификатор записи.library_id - идентификатор библиотеки-владельца.created_at - момент создания.updated_at - момент последнего изменения.status_changed_at - момент последней смены статуса.
user_editable#
content_type - обязательный ключ типа.content_subtype - опциональный ключ подтипа.title - заголовок записи.status - inbox | todo | in_progress | skimmed | done | dropped.priority - low | medium | high.rating - опциональная целочисленная оценка в диапазоне 1..10.recommendation - опциональный маркер рекомендации: recommended | neutral | not_recommended.favorite - независимый флаг избранного.archived - независимый флаг архивирования.parent_content_id - опциональная родительская связь.source_url - опциональная ссылка на источник.summary - опциональное краткое описание.
computed#
search_text - нормализованный текстовый индекс для быстрого поиска.last_activity_at - вычисляемое время последней активности.is_completed - вычисляемый флаг завершенности по статусу.
Модель вложений#
- Записи контента МОГУТ иметь несколько связанных вложений.
- Связи вложений моделируются как связанные сущности, а не как единичные фиксированные поля.
- Базовые поля вложения:
id, content_id, uri, name (optional), mime (optional), size (optional), created_at. - Baseline файл датасета для export/import вложений:
attachments.ndjson.
Правила#
- Клиенты ДОЛЖНЫ запрещать редактирование полей классов
system и computed. - Core ДОЛЖЕН поддерживать консистентность всех
computed полей. - При создании записи
status РЕКОМЕНДУЕТСЯ автоматически устанавливать в inbox. - При создании записи
priority РЕКОМЕНДУЕТСЯ оставлять пустым по умолчанию, если значение явно не задано. - При смене статуса ДОЛЖЕН обновляться
status_changed_at, при этом updated_at НЕ ДОЛЖЕН обновляться. - При изменении флага
favorite поле updated_at НЕ ДОЛЖНО обновляться. - При изменении флага
archived поле updated_at НЕ ДОЛЖНО обновляться. - Если
rating задан, значение ДОЛЖНО находиться в диапазоне 1..10. - Пользовательские поля, кроме
content_type и status, не обязательны в момент создания и могут заполняться позже. - Type-specific поля не являются обязательными в baseline и становятся обязательными только если пользовательская схема помечает их как required.
- Реализация МОЖЕТ добавлять дополнительные поля любого класса как implementation-defined расширения.
Связанные разделы#