import { Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, OneToMany, PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm'; import { Relation } from 'src/engine/workspace-manager/workspace-sync-metadata/interfaces/relation.interface'; import { UserWorkspaceEntity } from 'src/engine/core-modules/user-workspace/user-workspace.entity'; import { AgentChatMessageEntity } from 'src/engine/metadata-modules/agent/agent-chat-message.entity'; @Entity('agentChatThread') export class AgentChatThreadEntity { @PrimaryGeneratedColumn('uuid') id: string; @Column({ nullable: false, type: 'uuid' }) @Index() userWorkspaceId: string; @ManyToOne(() => UserWorkspaceEntity, { onDelete: 'CASCADE', }) @JoinColumn({ name: 'userWorkspaceId' }) userWorkspace: Relation; @Column({ nullable: true, type: 'varchar' }) title: string; @OneToMany(() => AgentChatMessageEntity, (message) => message.thread) messages: Relation; @CreateDateColumn() createdAt: Date; @UpdateDateColumn() updatedAt: Date; }