feat: update add permit flow
This commit is contained in:
@@ -208,6 +208,7 @@ const permitCore = {
|
||||
jobNumber: z.string().nullable().optional(),
|
||||
startDate: z.date().nullable().optional(),
|
||||
history: z.record(z.any()).optional(),
|
||||
issued: z.boolean().optional(),
|
||||
};
|
||||
|
||||
const createPermitInput = z.object({
|
||||
|
||||
@@ -18,6 +18,7 @@ import mongoose from "mongoose";
|
||||
import { getUser } from "../user/user.service";
|
||||
import { createNote } from "../note/note.service";
|
||||
import { createAlert } from "../alert/alert.service";
|
||||
import { processedModel } from "../processed/processed.schema";
|
||||
|
||||
export async function createPermit(
|
||||
input: CreatePermitInput,
|
||||
@@ -30,27 +31,51 @@ export async function createPermit(
|
||||
};
|
||||
}
|
||||
|
||||
const permit = await permitModel.create({
|
||||
tenantId: user.tenantId,
|
||||
pid: generateId(),
|
||||
createdAt: new Date(),
|
||||
createdBy: user.userId,
|
||||
...input,
|
||||
});
|
||||
|
||||
dbEvents.emit(
|
||||
"change",
|
||||
{
|
||||
if (input.issued) {
|
||||
const permit = await processedModel.create({
|
||||
tenantId: user.tenantId,
|
||||
type: "insert",
|
||||
collection: "permits",
|
||||
orgId: permit.client.toString(),
|
||||
document: permit,
|
||||
} as ChangeEvent,
|
||||
["permit:read"]
|
||||
);
|
||||
pid: generateId(),
|
||||
createdAt: new Date(),
|
||||
createdBy: user.userId,
|
||||
...input,
|
||||
});
|
||||
|
||||
return permit;
|
||||
dbEvents.emit(
|
||||
"change",
|
||||
{
|
||||
tenantId: user.tenantId,
|
||||
type: "insert",
|
||||
collection: "processed",
|
||||
orgId: permit.client.toString(),
|
||||
document: permit,
|
||||
} as ChangeEvent,
|
||||
["permit:read"]
|
||||
);
|
||||
|
||||
return permit;
|
||||
} else {
|
||||
const permit = await permitModel.create({
|
||||
tenantId: user.tenantId,
|
||||
pid: generateId(),
|
||||
createdAt: new Date(),
|
||||
createdBy: user.userId,
|
||||
...input,
|
||||
});
|
||||
|
||||
dbEvents.emit(
|
||||
"change",
|
||||
{
|
||||
tenantId: user.tenantId,
|
||||
type: "insert",
|
||||
collection: "permits",
|
||||
orgId: permit.client.toString(),
|
||||
document: permit,
|
||||
} as ChangeEvent,
|
||||
["permit:read"]
|
||||
);
|
||||
|
||||
return permit;
|
||||
}
|
||||
}
|
||||
|
||||
export async function getPermit(permitId: string, tenantId: string) {
|
||||
|
||||
@@ -13,7 +13,12 @@ const processedSchema = new mongoose.Schema({
|
||||
unique: true,
|
||||
},
|
||||
permitNumber: String,
|
||||
county: Object,
|
||||
county: {
|
||||
id: mongoose.Types.ObjectId,
|
||||
pid: String,
|
||||
name: String,
|
||||
avatar: String,
|
||||
},
|
||||
client: {
|
||||
type: mongoose.Types.ObjectId,
|
||||
ref: "organization",
|
||||
@@ -54,9 +59,35 @@ const processedSchema = new mongoose.Schema({
|
||||
type: mongoose.Types.ObjectId,
|
||||
ref: "user",
|
||||
},
|
||||
newProcessingStatus: Array,
|
||||
newPayment: Array,
|
||||
newConditions: Array,
|
||||
newProcessingStatus: [
|
||||
{
|
||||
last_modified_date: Date,
|
||||
description: String,
|
||||
status: String,
|
||||
assigned_user_text: String,
|
||||
due_date: Date,
|
||||
is_completed: String,
|
||||
comment: String,
|
||||
},
|
||||
],
|
||||
newPayment: [
|
||||
{
|
||||
apply_date: String,
|
||||
invoice_id: Number,
|
||||
amount: Number,
|
||||
balance_due: Number,
|
||||
code_text: String,
|
||||
status: String,
|
||||
},
|
||||
],
|
||||
newConditions: [
|
||||
{
|
||||
status_date: Date,
|
||||
status_value: String,
|
||||
short_comments: String,
|
||||
name: String,
|
||||
},
|
||||
],
|
||||
professionals: Object,
|
||||
recordId: String,
|
||||
relatedRecords: Object,
|
||||
@@ -69,7 +100,7 @@ const processedSchema = new mongoose.Schema({
|
||||
lot: String,
|
||||
block: String,
|
||||
jobNumber: String,
|
||||
transferDate: Date,
|
||||
startDate: Date,
|
||||
history: Array,
|
||||
taggedUsers: Array,
|
||||
}).index({ tenantId: 1, permitNumber: 1 }, { unique: true });
|
||||
|
||||
@@ -4,7 +4,7 @@ import { createEvent } from "./events/events.service";
|
||||
export type ChangeEvent = {
|
||||
tenantId: string;
|
||||
type: "insert" | "update" | "delete";
|
||||
collection: "permits" | "orgs";
|
||||
collection: "permits" | "processed" | "orgs";
|
||||
orgId?: string;
|
||||
document?: Object;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user