@justair/justair-library 4.8.42 → 4.8.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README +1 -1
- package/package.json +1 -1
- package/src/models/samples.js +17 -1
package/README
CHANGED
package/package.json
CHANGED
package/src/models/samples.js
CHANGED
|
@@ -30,6 +30,8 @@ const samplesAuditSchema = mongoose.Schema(
|
|
|
30
30
|
upperDetectionLimit: { type: Number },
|
|
31
31
|
lowerDetectionLimit: { type: Number },
|
|
32
32
|
deletedAt: { type: Date, default: Date.now }, // Only populated on delete
|
|
33
|
+
uploadedByName: { type: String }, // Name of the user who uploaded the sample
|
|
34
|
+
uploadDate: { type: Date }, // Date when the sample was uploaded
|
|
33
35
|
},
|
|
34
36
|
{
|
|
35
37
|
timestamps: true,
|
|
@@ -53,6 +55,8 @@ const samplesSchema = mongoose.Schema(
|
|
|
53
55
|
parameterUnit: { type: String },
|
|
54
56
|
upperDetectionLimit: { type: Number },
|
|
55
57
|
lowerDetectionLimit: { type: Number },
|
|
58
|
+
uploadedByName: { type: String }, // Name of the user who uploaded the sample
|
|
59
|
+
uploadDate: { type: Date }, // Date when the sample was uploaded
|
|
56
60
|
},
|
|
57
61
|
{
|
|
58
62
|
timestamps: true,
|
|
@@ -63,6 +67,8 @@ const samplesSchema = mongoose.Schema(
|
|
|
63
67
|
samplesSchema.index({ siteId: 1, periodStartDate: -1 });
|
|
64
68
|
// Pollutant-based queries
|
|
65
69
|
samplesSchema.index({ siteId: 1, parameterName: 1 });
|
|
70
|
+
// Upload history queries (show samples grouped by upload date)
|
|
71
|
+
samplesSchema.index({ siteId: 1, uploadDate: -1 });
|
|
66
72
|
|
|
67
73
|
// Pre-hook to log single document deletions
|
|
68
74
|
samplesSchema.pre("findOneAndDelete", async function () {
|
|
@@ -81,6 +87,8 @@ samplesSchema.pre("findOneAndDelete", async function () {
|
|
|
81
87
|
upperDetectionLimit: docToDelete.upperDetectionLimit,
|
|
82
88
|
lowerDetectionLimit: docToDelete.lowerDetectionLimit,
|
|
83
89
|
deletedAt: new Date(),
|
|
90
|
+
uploadedByName: docToDelete.uploadedByName,
|
|
91
|
+
uploadDate: docToDelete.uploadDate,
|
|
84
92
|
});
|
|
85
93
|
await auditLog.save();
|
|
86
94
|
}
|
|
@@ -104,6 +112,8 @@ samplesSchema.pre("deleteMany", async function () {
|
|
|
104
112
|
upperDetectionLimit: doc.upperDetectionLimit,
|
|
105
113
|
lowerDetectionLimit: doc.lowerDetectionLimit,
|
|
106
114
|
deletedAt: new Date(),
|
|
115
|
+
uploadedByName: doc.uploadedByName,
|
|
116
|
+
uploadDate: doc.uploadDate,
|
|
107
117
|
}));
|
|
108
118
|
await SamplesAudit.insertMany(auditLogs);
|
|
109
119
|
}
|
|
@@ -127,6 +137,8 @@ samplesSchema.pre("deleteOne", async function () {
|
|
|
127
137
|
upperDetectionLimit: docToDelete.upperDetectionLimit,
|
|
128
138
|
lowerDetectionLimit: docToDelete.lowerDetectionLimit,
|
|
129
139
|
deletedAt: new Date(),
|
|
140
|
+
uploadedByName: docToDelete.uploadedByName,
|
|
141
|
+
uploadDate: docToDelete.uploadDate,
|
|
130
142
|
});
|
|
131
143
|
await auditLog.save();
|
|
132
144
|
}
|
|
@@ -149,6 +161,8 @@ samplesSchema.pre("findOneAndUpdate", async function () {
|
|
|
149
161
|
upperDetectionLimit: docToUpdate.upperDetectionLimit,
|
|
150
162
|
lowerDetectionLimit: docToUpdate.lowerDetectionLimit,
|
|
151
163
|
deletedAt: null,
|
|
164
|
+
uploadedByName: docToUpdate.uploadedByName,
|
|
165
|
+
uploadDate: docToUpdate.uploadDate,
|
|
152
166
|
});
|
|
153
167
|
await auditLog.save();
|
|
154
168
|
}
|
|
@@ -171,6 +185,8 @@ samplesSchema.pre("updateMany", async function () {
|
|
|
171
185
|
upperDetectionLimit: doc.upperDetectionLimit,
|
|
172
186
|
lowerDetectionLimit: doc.lowerDetectionLimit,
|
|
173
187
|
deletedAt: null,
|
|
188
|
+
uploadedByName: doc.uploadedByName,
|
|
189
|
+
uploadDate: doc.uploadDate,
|
|
174
190
|
}));
|
|
175
191
|
await SamplesAudit.insertMany(auditLogs);
|
|
176
192
|
}
|
|
@@ -178,4 +194,4 @@ samplesSchema.pre("updateMany", async function () {
|
|
|
178
194
|
|
|
179
195
|
// Create the SampleSites model
|
|
180
196
|
const Samples = mongoose.model("Samples", samplesSchema);
|
|
181
|
-
export { samplesSchema, Samples, SamplesAudit, samplesAuditSchema, sampleParameterReferenceConcentrations };
|
|
197
|
+
export { samplesSchema, Samples, SamplesAudit, samplesAuditSchema, sampleParameterReferenceConcentrations };
|