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