/
pv_hum
/
schemaforge
Обзор
Документация
Войти
/
pv_hum
/
schemaforge
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/lib/sampleSchema.ts
83 строки
4 KB
pv_hum
Initial commit
21 май 2026, 22:25
21 май 2026, 22:25
0de9fa8
Код
Авторство
О чём код?
import { SchemaModel } from '../types/schema'; export const sampleSchema: SchemaModel = { sourceMode: 'prompt', sqlDialect: 'postgresql', metadata: { title: 'Интернет-магазин', description: 'Демонстрационная схема для визуализации и ревизий.', }, entities: [ { name: 'users', displayName: 'users', x: 80, y: 60, attributes: [ { name: 'id', type: 'bigserial', nullable: false, primaryKey: true }, { name: 'email', type: 'varchar(255)', nullable: false, primaryKey: false, unique: true }, { name: 'full_name', type: 'varchar(255)', nullable: false, primaryKey: false }, { name: 'phone', type: 'varchar(32)', nullable: true, primaryKey: false }, { name: 'created_at', type: 'timestamp', nullable: false, primaryKey: false } ] }, { name: 'products', displayName: 'products', x: 470, y: 60, attributes: [ { name: 'id', type: 'bigserial', nullable: false, primaryKey: true }, { name: 'name', type: 'varchar(255)', nullable: false, primaryKey: false }, { name: 'sku', type: 'varchar(64)', nullable: false, primaryKey: false, unique: true }, { name: 'price', type: 'numeric(12,2)', nullable: false, primaryKey: false }, { name: 'stock', type: 'int', nullable: false, primaryKey: false } ] }, { name: 'orders', displayName: 'orders', x: 120, y: 360, attributes: [ { name: 'id', type: 'bigserial', nullable: false, primaryKey: true }, { name: 'user_id', type: 'bigint', nullable: false, primaryKey: false, foreignKey: true, references: { entity: 'users', attribute: 'id' } }, { name: 'status', type: 'varchar(50)', nullable: false, primaryKey: false }, { name: 'total_amount', type: 'numeric(12,2)', nullable: false, primaryKey: false }, { name: 'created_at', type: 'timestamp', nullable: false, primaryKey: false } ] }, { name: 'order_items', displayName: 'order_items', x: 500, y: 360, attributes: [ { name: 'id', type: 'bigserial', nullable: false, primaryKey: true }, { name: 'order_id', type: 'bigint', nullable: false, primaryKey: false, foreignKey: true, references: { entity: 'orders', attribute: 'id' } }, { name: 'product_id', type: 'bigint', nullable: false, primaryKey: false, foreignKey: true, references: { entity: 'products', attribute: 'id' } }, { name: 'quantity', type: 'int', nullable: false, primaryKey: false }, { name: 'unit_price', type: 'numeric(12,2)', nullable: false, primaryKey: false } ] }, { name: 'payments', displayName: 'payments', x: 860, y: 360, attributes: [ { name: 'id', type: 'bigserial', nullable: false, primaryKey: true }, { name: 'order_id', type: 'bigint', nullable: false, primaryKey: false, foreignKey: true, references: { entity: 'orders', attribute: 'id' } }, { name: 'provider', type: 'varchar(64)', nullable: false, primaryKey: false }, { name: 'amount', type: 'numeric(12,2)', nullable: false, primaryKey: false }, { name: 'paid_at', type: 'timestamp', nullable: true, primaryKey: false } ] } ], relationships: [ { fromEntity: 'orders', toEntity: 'users', type: 'many-to-one', fromField: 'user_id', toField: 'id', label: 'orders.user_id → users.id' }, { fromEntity: 'order_items', toEntity: 'orders', type: 'many-to-one', fromField: 'order_id', toField: 'id', label: 'order_items.order_id → orders.id' }, { fromEntity: 'order_items', toEntity: 'products', type: 'many-to-one', fromField: 'product_id', toField: 'id', label: 'order_items.product_id → products.id' }, { fromEntity: 'payments', toEntity: 'orders', type: 'many-to-one', fromField: 'order_id', toField: 'id', label: 'payments.order_id → orders.id' } ] };