Re_Backend/src/models/mongoose/ConclusionRemark.schema.ts

71 lines
1.7 KiB
TypeScript

import mongoose, { Schema, Document } from 'mongoose';
export interface IConclusionRemark extends Document {
conclusionId: string;
requestId: string;
// Manual conclusion
finalRemark?: string;
// AI generated
aiGeneratedRemark?: string;
aiModelUsed?: string;
aiConfidenceScore?: number;
// Summaries
approvalSummary?: {
totalLevels?: number;
approvedLevels?: number;
averageTatUsage?: number;
};
documentSummary?: {
totalDocuments?: number;
documentNames?: string[];
};
keyDiscussionPoints?: string[];
// Metadata
editedBy?: string; // userId
isEdited?: boolean;
editCount?: number;
generatedAt?: Date;
finalizedAt?: Date;
createdAt: Date;
updatedAt: Date;
}
const ConclusionRemarkSchema = new Schema<IConclusionRemark>({
conclusionId: { type: String, required: false, unique: false }, // Can be auto-generated or UUID
requestId: { type: String, required: true, index: true },
finalRemark: String,
aiGeneratedRemark: String,
aiModelUsed: String,
aiConfidenceScore: Number,
approvalSummary: {
totalLevels: Number,
approvedLevels: Number,
averageTatUsage: Number
},
documentSummary: {
totalDocuments: Number,
documentNames: [String]
},
keyDiscussionPoints: [String],
editedBy: String,
isEdited: { type: Boolean, default: false },
editCount: { type: Number, default: 0 },
generatedAt: Date,
finalizedAt: Date
}, {
timestamps: true,
collection: 'conclusion_remarks'
});
export const ConclusionRemarkModel = mongoose.model<IConclusionRemark>('ConclusionRemark', ConclusionRemarkSchema);