203 lines
4.8 KiB
JavaScript
203 lines
4.8 KiB
JavaScript
import mongoose from "mongoose";
|
|
|
|
const permitsModel = mongoose.model(
|
|
"permit",
|
|
new mongoose.Schema(
|
|
{
|
|
tenantId: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
pid: {
|
|
type: String,
|
|
unique: true,
|
|
},
|
|
permitNumber: String,
|
|
county: Object,
|
|
client: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "organization",
|
|
},
|
|
clientData: Object,
|
|
permitDate: Date,
|
|
stage: new mongoose.Schema(
|
|
{
|
|
pipeline: Array,
|
|
currentStage: Number,
|
|
},
|
|
{ _id: false }
|
|
),
|
|
status: String,
|
|
manualStatus: String,
|
|
assignedTo: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "user",
|
|
},
|
|
link: String,
|
|
address: Object,
|
|
recordType: String,
|
|
description: String,
|
|
applicationDetails: Object,
|
|
applicationInfo: Object,
|
|
applicationInfoTable: Object,
|
|
conditions: Array,
|
|
ownerDetails: String,
|
|
parcelInfo: Object,
|
|
paymentData: Object,
|
|
professionalsList: Array,
|
|
inspections: Object,
|
|
createdAt: Date,
|
|
createdBy: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "user",
|
|
},
|
|
newProcessingStatus: Array,
|
|
newPayment: Array,
|
|
newConditions: Array,
|
|
professionals: Object,
|
|
recordId: String,
|
|
relatedRecords: Object,
|
|
accelaStatus: String,
|
|
openDate: Date,
|
|
lastUpdateDate: Date,
|
|
statusUpdated: Date,
|
|
},
|
|
{ strict: false }
|
|
)
|
|
);
|
|
|
|
const processedModel = mongoose.model(
|
|
"processed",
|
|
new mongoose.Schema(
|
|
{
|
|
tenantId: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
pid: {
|
|
type: String,
|
|
unique: true,
|
|
},
|
|
permitNumber: String,
|
|
county: Object,
|
|
client: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "organization",
|
|
},
|
|
clientData: Object,
|
|
permitDate: Date,
|
|
stage: new mongoose.Schema(
|
|
{
|
|
pipeline: Array,
|
|
currentStage: Number,
|
|
},
|
|
{ _id: false }
|
|
),
|
|
status: String,
|
|
manualStatus: String,
|
|
assignedTo: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "user",
|
|
},
|
|
link: String,
|
|
address: Object,
|
|
recordType: String,
|
|
description: String,
|
|
applicationDetails: Object,
|
|
applicationInfo: Object,
|
|
applicationInfoTable: Object,
|
|
conditions: Array,
|
|
ownerDetails: String,
|
|
parcelInfo: Object,
|
|
paymentData: Object,
|
|
professionalsList: Array,
|
|
inspections: Object,
|
|
createdAt: Date,
|
|
createdBy: {
|
|
type: mongoose.Types.ObjectId,
|
|
ref: "user",
|
|
},
|
|
newProcessingStatus: Array,
|
|
newPayment: Array,
|
|
newConditions: Array,
|
|
professionals: Object,
|
|
recordId: String,
|
|
relatedRecords: Object,
|
|
accelaStatus: String,
|
|
openDate: Date,
|
|
lastUpdateDate: Date,
|
|
statusUpdated: Date,
|
|
transferDate: Date,
|
|
},
|
|
{ strict: false }
|
|
),
|
|
"processed"
|
|
);
|
|
|
|
const notifModel = mongoose.model(
|
|
"notification",
|
|
new mongoose.Schema(
|
|
{
|
|
createdAt: Date,
|
|
},
|
|
{ strict: false }
|
|
)
|
|
);
|
|
|
|
(async () => {
|
|
console.log(new Date().toISOString() + " Started Pasco Archive script...");
|
|
|
|
await mongoose.connect(process.env.DB_URI);
|
|
|
|
const processedPermits = await permitsModel.find({
|
|
$and: [{ "county.pid": "bibmdcutwwb7e3d" }, { status: "Permit Issued" }],
|
|
});
|
|
|
|
console.log(`Found ${processedPermits.length} to archive`);
|
|
|
|
let count = 0;
|
|
for (const permit of processedPermits) {
|
|
await processedModel.create({
|
|
tenantId: permit.tenantId,
|
|
pid: permit.pid,
|
|
permitNumber: permit.permitNumber,
|
|
county: permit.county,
|
|
client: permit.client,
|
|
clientData: permit.clientData,
|
|
status: permit.status,
|
|
manualStatus: "Issued",
|
|
assignedTo: permit.assignedTo,
|
|
link: permit.link,
|
|
address: permit.address,
|
|
recordType: permit.recordType,
|
|
description: permit.description,
|
|
createdAt: permit.createdAt,
|
|
createdBy: permit.createdBy,
|
|
newProcessingStatus: permit.newProcessingStatus,
|
|
newPayment: permit.newPayment,
|
|
newConditions: permit.newConditions,
|
|
professionals: permit.professionals,
|
|
recordId: permit.recordId,
|
|
relatedRecords: permit.relatedRecords,
|
|
accelaStatus: permit.accelaStatus,
|
|
openDate: permit.openDate,
|
|
lastUpdateDate: permit.lastUpdateDate,
|
|
statusUpdated: permit.statusUpdated,
|
|
transferDate: new Date(),
|
|
});
|
|
|
|
await permit.deleteOne();
|
|
count++;
|
|
}
|
|
|
|
console.log(`${count} permits archived`);
|
|
|
|
const deletedRecords = await notifModel.deleteMany({
|
|
$and: [{ "county.pid": "bibmdcutwwb7e3d" }, { status: "Permit Issued" }],
|
|
});
|
|
|
|
console.log(`${deletedRecords.deletedCount} notifications deleted`);
|
|
|
|
await mongoose.connection.close();
|
|
})().catch((err) => console.log(err));
|