ТTessora Docs

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

Prisma-схема — 34 модели, 14 enums, 24 миграции

Схема: prisma/schema.prisma. Все мутации — через Prisma 6, физического удаления нет (soft delete через deletedAt).

Группы моделей

Better Auth (встроенные)

МодельНазначение
UserПользователь: email, role, companyId, telegramId, permissionOverridesJson, isActive
SessionСессии (token, expiresAt)
AccountУчётные данные / OAuth
VerificationТокены верификации

Tenancy и RBAC

МодельНазначение
CompanyКомпания: type (CLIENT / MONSTER), plan (TRIAL / STARTER / PRO / ENTERPRISE)
PermissionКлюч права, например task.create
RolePermissionМатрица роль → permission
UserPermissionТочечные overrides прав конкретного пользователя
InvitationПриглашение: email, роль, компания, срок действия

Задачи (основной домен)

МодельНазначение
TaskЗадача: title, description, status, dueDate, assignedTo, isTarget, поля v7.6 (productName, article, price, comment)
MaterialМатериалы задачи: тип (MaterialType), файл, soft delete
ContentBriefКонтент-бриф: hook, voice text, ad text, блоки
AIPromptСгенерированный AI-промпт: shortTz, fullTz, scenePlan, voiceover, версия
ReferenceРеференс (видео/фото): категория, теги, thumbnail, isArchived
ReferenceCategoryКатегории референсов — database-driven (name, slug, sortOrder)

Каталог Smart Selector (v7.6)

МодельНазначение
TaskCatalogGroupГруппа каталога: вкладка (PRODUCTS / FABRICS / SERVICES / FUNCTIONS), title, порядок
TaskCatalogItemПозиция в группе: label, searchKeywords
TaskSelectedItemВыбранные позиции в задаче (снапшот label/group)
TaskStyleВыбранные стили ролика
TaskInteriorTypeТипы интерьера (RESIDENTIAL / COMMERCIAL)

Готовый контент

МодельНазначение
ReadyContentГотовый ролик: status, version, parentVersionId (цепочка версий), isFinal, платформы, кто загрузил/утвердил
ReadyContentFileФайлы контента (несколько на запись, sortOrder)
RevisionRequestЗапрос правок: текст, status (OPEN / RESOLVED), к какой версии относится

AI

МодельНазначение
AIProviderConfigПровайдер: gemini/openai, модель, apiKey, isPrimary, fallbackOrder, статус теста
AISystemConfigСистемный конфиг: месячный бюджет USD, порог (80%), последняя ошибка/успех
AIUsageLogЛог использования: токены, стоимость, кэш-хиты
PromptTemplateШаблоны промптов по операциям

Инфраструктура

МодельНазначение
CalendarItemСобытие календаря: задача, дата, lane, порядок, исполнитель
NotificationIn-app уведомление: тип, entity, readAt
PushSubscriptionБраузерная push-подписка (endpoint, ключи)
AuditLogАудит: действие, entity, meta, ip, userAgent
ThemePreferenceВыбранная тема пользователя (8 тем)
FileObjectФайл в S3: storageKey, bucket, size, кто загрузил
SafebotItemСкачанное из Instagram видео: url, статус, ссылка на mp4, promoted task

Enums (14)

Role                7 ролей: super_admin … client_viewer
TaskStatus          NEED_TO_DO, IN_PROGRESS, ON_REVIEW, ON_REVISION, APPROVED
ReadyContentStatus  ON_REVIEW, ON_REVISION, APPROVED, ARCHIVED
RevisionStatus      OPEN, RESOLVED
NotificationType    TASK_CREATED, TASK_STATUS_CHANGED, REFERENCE_UPLOADED,
                    CONTENT_UPLOADED, REVISION_REQUESTED,
                    CONTENT_RETURNED_TO_REVIEW, CONTENT_APPROVED, SYSTEM
CompanyType         CLIENT, MONSTER
CompanyPlan         TRIAL, STARTER, PRO, ENTERPRISE
ThemeName           warm_gold, cold_tech, premium_mint, lime_growth,
                    rose_mint, sand_mint, violet_ice, olive_pearl
MaterialType        FABRIC_PHOTO, PRODUCT_PHOTO, INTERIOR, FABRIC_VIDEO, DOCUMENT, OTHER
AIProvider          GEMINI, OPENAI, CLAUDE
AIOperation         GENERATE_PROMPT, GENERATE_COPY, SHORTEN_TZ, VALIDATE_TZ, STRUCTURE_REVISION
SafebotItemStatus   PENDING, DOWNLOADING, DOWNLOADED, FAILED, PROMOTED
CatalogTabKey       PRODUCTS, FABRICS, SERVICES, FUNCTIONS
InteriorCategory    RESIDENTIAL, COMMERCIAL

Миграции

24 миграции в prisma/migrations/, история с 2026-05-31. Ключевые вехи:

ДатаМиграцияЧто добавила
2026-05-31initБазовая схема
2026-06-01v76_smart_selector_catalogКаталог Smart Selector
2026-06-01add_invitation_modelПриглашения
2026-06-03soft_delete_taskSoft delete задач
2026-06-04safebotInstagram downloader
2026-06-08add_user_permissionPermission overrides
2026-06-12add_ai_provider_configAI-провайдеры в БД
2026-06-12add_reference_category_tableDatabase-driven категории
2026-06-13add_ready_content_filesНесколько файлов на контент
2026-06-16add_push_subscription, add_telegram_id, add_notification_types3 канала уведомлений

Применение: pnpm db:migrate (dev) / prisma migrate deploy (prod, входит в build и Railway deploy hook).

On this page