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

Модель данных

Зачем нужно

Документ описывает каноническую модель витрины: страницы, блоки, каталог, подборки, профили, отзывы, достижения, факты, кампании, формы, SEO и модерацию.

Правила модели

  • Каждая сущность имеет id, created_at, updated_at, если явно не указано иначе.
  • Ссылки на соседние домены хранятся как source_domain, source_type, source_id.
  • Канонические имена сущностей витрины имеют префикс storefront_.
  • Опубликованные версии страниц неизменяемы.
  • Ручной витринный текст отделён от канонических полей соседних доменов.
  • Публичные PII-поля имеют consent/publication policy.
  • Изменения публикации, SEO, redirects, moderation и forms пишутся в audit.

Naming

Каноническая сущностьНазначение
storefront_pageпубличная или авторизованная страница
storefront_blockблок rich content внутри страницы
storefront_form, storefront_form_submissionформы и отправки
storefront_catalog_item, storefront_collectionэлементы каталога и подборки
storefront_public_profile, storefront_profile_roleпубличный профиль и контекстная роль
storefront_review, storefront_achievement, storefront_factотзывы, достижения и проверяемые факты
storefront_page_version.seo, storefront_redirectSEO-настройки версии страницы и redirects

Pages и CMS

storefront_page

Публичная или авторизованная страница.

ПолеНазначение
slugURL-key
localeязык
typelanding, catalog, profile, article, campaign, system
statusdraft, review, scheduled, published, hidden, archived
primary_source_refосновная доменная связь
canonical_urlcanonical URL
indexing_policyindex, noindex, private

storefront_page_version

Версия страницы.

ПолеНазначение
page_idстраница
versionномер версии
statusdraft, review, scheduled, published, retired
seotitle, description, og, structured data
published_atвремя публикации
scheduled_forвремя запланированной публикации

storefront_block

Блок страницы.

Типы:

  • hero;
  • rich_text;
  • catalog_rail;
  • profile_list;
  • reviews;
  • achievements;
  • facts;
  • roadmap;
  • faq;
  • form;
  • cta;
  • media;
  • custom_embed.

Блок хранит props, data_source, visibility_rule, position.

Каталог

storefront_catalog_item

Витринная карточка продукта, курса, олимпиады, события или материала.

ПолеНазначение
source_domain, source_type, source_idвладелец исходной сущности
slugURL или key карточки
titleвитринное название
statusdraft, published, hidden, archived
facetsнаправление, формат, уровень, возраст, цель
displayописание, бейджи, CTA, изображения
availabilityread-model доступности
pricing_summaryпубличный ценовой диапазон

storefront_collection

Подборка карточек.

ПолеНазначение
slugkey подборки
titleназвание
typemanual, rule_based, hybrid
ruleправило выборки
statusпубликационный статус

storefront_collection_item

Элемент подборки с ручным порядком, override display и датами показа.

Публичные профили

storefront_public_profile

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

ПолеНазначение
typeperson, student, alumni, team, organization, committee
source_refсвязь с identity/organization/manual
slugURL
public_nameпубличное имя
statusdraft, review, published, hidden, archived
privacy_policyправила показа
consent_statusстатус согласия

storefront_profile_role

Контекстная роль профиля: преподаватель курса, член команды, жюри олимпиады, автор материала.

Отзывы, рейтинги, достижения

storefront_review

Публичная витринная публикация отзыва с consent и moderation lifecycle. Storefront владеет записью публикации, местами показа, moderation и consent snapshot; исходное авторское высказывание или связь с пользователем не становится storefront-owned identity entity.

ПолеНазначение
author_public_nameпубличная подпись
author_typeученик, родитель, выпускник, партнёр
ratingоценка, если есть
bodyтекст
source_refисходная привязка
display_placesразрешённые места показа
moderation_statusmoderation lifecycle
consent_statusразрешение на публикацию

storefront_rating_aggregate

Рассчитанный рейтинг по правилу.

storefront_achievement

Публичное достижение: субъект, тип, период, источник, описание, статус модерации.

Факты

storefront_fact

Проверяемое публичное утверждение.

ПолеНазначение
keyстабильный ключ
typenumber, text, badge, statistic, certification, media
public_textпубличная формулировка
valueзначение
unitединица
sourceисточник
calculation_methodметод расчёта
validity_policyбессрочный, до даты, периодическая проверка
verification_statusdraft, needs_review, verified, expired, rejected

Кампании и CTA

storefront_campaign

Временная витринная упаковка вокруг продукта, события, сезона или цели.

storefront_cta

Call-to-action: текст, URL/action, placement, tracking, schedule, status.

Формы

storefront_form

Описание публичной формы: поля, validation, consent text, CRM mapping, spam policy.

storefront_form_submission

Отправленная заявка.

Правила:

  • хранить минимальный payload;
  • PII не логировать;
  • передавать в CRM с idempotency key;
  • поддерживать retry и failure diagnostics.

SEO

storefront_redirect

Redirect rule.

Поля: from_path, to_url, status_code, is_external, allowlist_status, status.

storefront_sitemap_entry

Индексируемая страница: URL, locale, lastmod, priority, changefreq, source page version.

Модерация

storefront_moderation_case

Проверка review, achievement, fact, profile или page.

Поля: entity, status, reason, reviewer, comments, decision_at.

Audit

storefront_audit_log

Фиксирует публикации, moderation decisions, redirects, form mapping, SEO changes и админские изменения.