Просмотр исходного кода

Add isActive field and deactivateByAiAssistantId method to ThreadRelation model

Shun Miyazawa 9 месяцев назад
Родитель
Сommit
e58d31689a

+ 1 - 0
apps/app/src/features/openai/interfaces/thread-relation.ts

@@ -17,6 +17,7 @@ export interface IThreadRelation {
   title?: string;
   type: ThreadType;
   expiredAt: Date;
+  isActive: boolean;
 }
 
 export type IThreadRelationHasId = IThreadRelation & HasObjectId;

+ 19 - 0
apps/app/src/features/openai/server/models/thread-relation.ts

@@ -19,6 +19,7 @@ export interface ThreadRelationDocument extends IThreadRelation, Document {
 
 interface ThreadRelationModel extends PaginateModel<ThreadRelationDocument> {
   getExpiredThreadRelations(limit?: number): Promise<ThreadRelationDocument[] | undefined>;
+  deactivateByAiAssistantId(aiAssistantId: string): Promise<void>;
 }
 
 const schema = new Schema<ThreadRelationDocument, ThreadRelationModel>({
@@ -49,6 +50,11 @@ const schema = new Schema<ThreadRelationDocument, ThreadRelationModel>({
     default: generateExpirationDate,
     required: true,
   },
+  isActive: {
+    type: Boolean,
+    default: true,
+    required: true,
+  },
 }, {
   timestamps: { createdAt: false, updatedAt: true },
 });
@@ -61,6 +67,19 @@ schema.statics.getExpiredThreadRelations = async function(limit?: number): Promi
   return expiredThreadRelations;
 };
 
+schema.statics.deactivateByAiAssistantId = async function(aiAssistantId: string): Promise<void> {
+  await this.updateMany(
+    {
+      aiAssistant: aiAssistantId,
+      isActive: true,
+    },
+    {
+      $set: { isActive: false },
+    },
+  );
+};
+
+
 schema.methods.updateThreadExpiration = async function(): Promise<void> {
   this.expiredAt = generateExpirationDate();
   await this.save();