5105310c92
Инфраструктура: - pnpm workspaces monorepo (apps/web, apps/api, packages/) - docker-compose.yml: PostgreSQL 16 - .env.example: DATABASE_URL, API_PORT, NEXT_PUBLIC_API_URL Backend (apps/api — NestJS 11): - Инициализирован NestJS с pnpm - Prisma 7 + prisma.config.ts подключен к PostgreSQL - Схема: User (role: viewer/editor), ExperimentalComponent (status: draft/review/approved) Frontend (apps/web — Next.js 16): - App Router, TypeScript, Tailwind CSS 4, Fira Sans (Google Fonts) - globals.css: CSS-токены бренда (цвета 053M–080M, шрифты) - layout.tsx: корневой layout с боковой навигацией - Sidebar.tsx: навигация по всем разделам (Фундамент, Компоненты, Блоки, Страницы, Оффлайн, Эксперименты) - page.tsx: редирект → /foundation/logo - /foundation/logo: полная страница «Логотип» - Иерархия и версии (Основной / Общий) - Цветовые варианты (основной, инвертированный, на форме) - Охранная зона с визуализацией - Таблица минимальных размеров (форма сотрудников) - Недопустимые варианты (6 правил) - Блок скачивания (placeholder до получения вектора) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
43 lines
874 B
Plaintext
43 lines
874 B
Plaintext
generator client {
|
|
provider = "prisma-client"
|
|
output = "../generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
}
|
|
|
|
enum Role {
|
|
viewer
|
|
editor
|
|
}
|
|
|
|
enum ComponentStatus {
|
|
draft
|
|
review
|
|
approved
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(uuid())
|
|
email String @unique
|
|
name String
|
|
passwordHash String
|
|
role Role @default(viewer)
|
|
createdAt DateTime @default(now())
|
|
|
|
components ExperimentalComponent[]
|
|
}
|
|
|
|
model ExperimentalComponent {
|
|
id String @id @default(uuid())
|
|
name String
|
|
baseComponent String
|
|
attributes Json
|
|
status ComponentStatus @default(draft)
|
|
author User @relation(fields: [authorId], references: [id])
|
|
authorId String
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|