Refactor audit log and email message schemas for consistency by standardizing required fields and formatting. Ensure proper indexing and maintain functionality with minor adjustments to object references.
All checks were successful
farmcontrol/farmcontrol-scheduler/pipeline/head This commit looks good
All checks were successful
farmcontrol/farmcontrol-scheduler/pipeline/head This commit looks good
This commit is contained in:
parent
39060f0cea
commit
c9d2f35bc0
@ -7,45 +7,41 @@ const auditLogSchema = new Schema(
|
||||
_reference: { type: String, default: () => generateId()() },
|
||||
changes: {
|
||||
old: { type: Object, required: false },
|
||||
new: { type: Object, required: false }
|
||||
new: { type: Object, required: false },
|
||||
},
|
||||
operation: {
|
||||
type: String,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
parent: {
|
||||
type: Schema.Types.ObjectId,
|
||||
refPath: 'parentType',
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
parentType: {
|
||||
type: String,
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
owner: {
|
||||
type: Schema.Types.ObjectId,
|
||||
refPath: 'ownerType',
|
||||
required: false
|
||||
required: false,
|
||||
},
|
||||
ownerType: {
|
||||
type: String,
|
||||
required: false,
|
||||
enum: ['user', 'printer', 'host', 'marketplace']
|
||||
enum: ['user', 'printer', 'host', 'marketplace'],
|
||||
},
|
||||
system: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false
|
||||
}
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
auditLogSchema.index({
|
||||
operation: 'text',
|
||||
parentType: 'text',
|
||||
ownerType: 'text'
|
||||
});
|
||||
auditLogSchema.index({ operation: 'text', parentType: 'text', ownerType: 'text' });
|
||||
|
||||
// Add virtual id getter
|
||||
auditLogSchema.virtual('id').get(function () {
|
||||
|
||||
@ -10,29 +10,21 @@ const emailMessageSchema = new Schema(
|
||||
emailTemplate: {
|
||||
type: Schema.Types.ObjectId,
|
||||
ref: 'emailTemplate',
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
objectType: { type: String, required: true },
|
||||
object: {
|
||||
type: Schema.Types.ObjectId,
|
||||
refPath: 'objectType',
|
||||
required: true
|
||||
},
|
||||
object: { type: Schema.Types.ObjectId, refPath: 'objectType', required: true },
|
||||
emailAccount: {
|
||||
type: Schema.Types.ObjectId,
|
||||
ref: 'emailAccount',
|
||||
required: true
|
||||
required: true,
|
||||
},
|
||||
recipientEmail: { type: String, required: true },
|
||||
recipientType: {
|
||||
type: String,
|
||||
enum: ['client', 'vendor'],
|
||||
required: false
|
||||
},
|
||||
recipientType: { type: String, enum: ['client', 'vendor'], required: false },
|
||||
recipient: {
|
||||
type: Schema.Types.ObjectId,
|
||||
refPath: 'recipientType',
|
||||
required: false
|
||||
required: false,
|
||||
},
|
||||
fromEmail: { type: String, required: true, immutable: true },
|
||||
messageId: { type: String, required: false },
|
||||
@ -42,11 +34,11 @@ const emailMessageSchema = new Schema(
|
||||
state: {
|
||||
type: { type: String, required: true, default: 'queued' },
|
||||
progress: { type: Number, required: false, default: 0 },
|
||||
message: { type: String, required: false }
|
||||
message: { type: String, required: false },
|
||||
},
|
||||
read: { type: Boolean, required: true, default: false },
|
||||
sentAt: { type: Date, required: false },
|
||||
readAt: { type: Date, required: false }
|
||||
readAt: { type: Date, required: false },
|
||||
},
|
||||
{ timestamps: true, suppressReservedKeysWarning: true }
|
||||
);
|
||||
@ -55,14 +47,11 @@ emailMessageSchema.index({
|
||||
name: 'text',
|
||||
recipientEmail: 'text',
|
||||
fromEmail: 'text',
|
||||
objectType: 'text'
|
||||
objectType: 'text',
|
||||
});
|
||||
emailMessageSchema.virtual('id').get(function () {
|
||||
return this._id;
|
||||
});
|
||||
emailMessageSchema.set('toJSON', { virtuals: true });
|
||||
|
||||
export const emailMessageModel = mongoose.model(
|
||||
'emailMessage',
|
||||
emailMessageSchema
|
||||
);
|
||||
export const emailMessageModel = mongoose.model('emailMessage', emailMessageSchema);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user