UNPKG

@wearesage/schema

Version:

A flexible schema definition and validation system for TypeScript with multi-database support

42 lines (36 loc) 1.04 kB
import { Entity, Property, Id, Auth, OneToMany , Labels } from '../../core/decorators'; ; import { PostgresMetadata } from "../../adapters/metadata-layer"; import { Embeddings } from "../../adapters/embeddings"; import { TestMessage } from "./TestMessage"; @Entity() @Labels(['Conversation']) @Auth({ permissions: ['user'] }) @PostgresMetadata({ fields: ['id', 'name', 'messageCount', 'createdAt'], tableName: 'conversation_metadata' }) @Embeddings({ fields: ['name'], model: 'nomic-embed-text:latest', provider: 'ollama', dimensions: 768, vectorStore: 'pgvector', embeddingField: 'semanticEmbedding', metadataFields: ['id', 'name', 'createdAt'] }) export class TestConversation { @Id() id!: string; @Property({ required: true }) name!: string; @Property() messageCount!: number; @Property() createdAt!: Date; @Property() updatedAt!: Date; // One-to-many relationship: conversation has many messages @OneToMany({ target: () => TestMessage, inverse: 'conversation' }) messages?: TestMessage[]; }