Перейти к основному содержимому

Статусные модели

Page

draft -> review -> scheduled -> published -> archived

Дополнительные переходы:

  • review -> draft;
  • scheduled -> draft;
  • published -> hidden;
  • hidden -> published;
  • published|hidden -> archived.

Правила:

  • published page показывает только published page version;
  • изменение published page создаёт новую version;
  • page с private indexing policy не попадает в sitemap;
  • archived page должен иметь redirect или явное noindex-решение.

Page version

draft -> review -> scheduled -> published -> retired

Правила:

  • published version immutable;
  • у page может быть только одна active published version;
  • scheduled version публикуется job-ом в заданное время;
  • публикация требует валидных blocks, SEO и canonical policy.

Catalog item

draft -> published -> hidden -> published
published|hidden -> archived

Правила:

  • published item требует source ref или manual owner;
  • source update не должен удалять ручной display override без review;
  • hidden item не показывается в каталоге, но может оставаться в истории подборки.

Collection

draft -> review -> published -> archived

Правила:

  • manual collection требует хотя бы один item;
  • rule-based collection требует валидное rule expression;
  • collection item с истёкшим ends_at не показывается.

Public profile

draft -> review -> published -> hidden -> published
published|hidden -> archived

Правила:

  • profile человека или ученика требует consent policy;
  • profile несовершеннолетнего требует отдельного режима privacy;
  • context role не публикуется, если profile hidden или archived.

Review

draft -> in_review -> approved -> published

Дополнительные переходы:

  • in_review -> rejected;
  • published -> hidden;
  • hidden -> published;
  • published|hidden|rejected -> archived.

Правила:

  • published review требует approved moderation и consent;
  • rejected review не участвует в rating aggregate;
  • hidden review не показывается, но может оставаться в истории модерации.

Achievement

draft -> in_review -> approved -> published

Дополнительные переходы: как у review.

Правила:

  • achievement требует subject и period/date;
  • achievement ученика требует privacy check;
  • achievement может стать source для fact, но не автоматически.

Fact

draft -> needs_review -> verified -> published

Дополнительные переходы:

  • verified|published -> expired;
  • needs_review -> rejected;
  • published -> hidden;
  • hidden -> published;
  • expired|rejected|hidden -> archived.

Правила:

  • published fact требует source или manual verification owner;
  • expired fact не должен исчезать без управляемого решения;
  • computed fact хранит calculation method.

Campaign

draft -> review -> scheduled -> published -> archived

Дополнительно: published -> paused -> published.

Правила:

  • campaign с ends_at автоматически скрывает временные placements;
  • campaign не копирует продуктовые цены и статусы вручную.

Form submission

received -> sent_to_crm

Дополнительные переходы:

  • received -> failed -> sent_to_crm;
  • received|failed -> discarded.

Правила:

  • передача в CRM идемпотентна;
  • failed сохраняет error без PII в логах;
  • discarded требует причины: spam, duplicate, invalid consent, manual decision.

Redirect

draft -> review -> published -> archived

Правила:

  • external redirect требует allowlist review;
  • redirect не должен создавать цикл;
  • archived page должна иметь redirect или noindex.

Moderation case

open -> approved
open -> rejected
open -> needs_changes -> open
approved|rejected -> closed

Правила:

  • moderation decision пишет reviewer и decision time;
  • повторная публикация после rejected требует новый case;
  • moderation comments не публикуются наружу.