diff --git a/src/permit/permit.controller.ts b/src/permit/permit.controller.ts index a1cd75f..c78e51f 100644 --- a/src/permit/permit.controller.ts +++ b/src/permit/permit.controller.ts @@ -57,7 +57,7 @@ export async function updatePermitHandler( req: FastifyRequest, res: FastifyReply ) { - const input = req.body as UpdatePermitInput; + const input = req.body as CreatePermitInput; const { permitId } = req.params as { permitId: string }; try { diff --git a/src/permit/permit.route.ts b/src/permit/permit.route.ts index 67b57fb..d8f92dd 100644 --- a/src/permit/permit.route.ts +++ b/src/permit/permit.route.ts @@ -63,7 +63,7 @@ export async function permitRoutes(fastify: FastifyInstance) { type: "object", properties: { permitId: { type: "string" } }, }, - body: $permit("updatePermitInput"), + body: $permit("createPermitInput"), }, }, updatePermitHandler diff --git a/src/permit/permit.schema.ts b/src/permit/permit.schema.ts index 2a1544c..494c165 100644 --- a/src/permit/permit.schema.ts +++ b/src/permit/permit.schema.ts @@ -59,9 +59,35 @@ const permitSchema = 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, @@ -85,10 +111,25 @@ export const permitFields = Object.keys(permitSchema.paths).filter( export const permitModel = mongoose.model("permit", permitSchema); const permitCore = { - permitNumber: z.string(), - county: z.string().optional(), + permitNumber: z.string().optional(), client: z.string().optional(), - permitDate: z.date(), + county: z + .object({ + id: z.string(), + pid: z.string(), + name: z.string(), + avatar: z.string(), + }) + .optional(), + clientData: z + .object({ + pid: z.string(), + licenseNumber: z.string(), + name: z.string(), + avatar: z.string(), + }) + .optional(), + permitDate: z.date().optional(), stage: z .object({ pipeline: z.array( @@ -103,7 +144,70 @@ const permitCore = { }) .optional(), status: z.string().optional(), - assignedTo: z.string().optional(), + manualStatus: z.string().nullable().optional(), + cleanStatus: z.string().optional(), + permitType: z.string().optional(), + utility: z.string().nullable().optional(), + assignedTo: z.string().nullable().optional(), + link: z.string().optional(), + address: z + .object({ + full_address: z.string(), + community_address: z.string(), + postal_code: z.string(), + }) + .optional(), + recordType: z.string().optional(), + description: z.string().optional(), + newProcessingStatus: z + .array( + z.object({ + last_modified_date: z.date().optional(), + description: z.string().optional(), + status: z.string().optional(), + assigned_user_text: z.string().optional(), + due_date: z.date().optional(), + is_completed: z.string().optional(), + comment: z.string().optional(), + }) + ) + .optional(), + newPayment: z + .array( + z.object({ + apply_date: z.string().optional(), + invoice_id: z.number().optional(), + amount: z.number().optional(), + balance_due: z.number().optional(), + code_text: z.string().optional(), + status: z.string().optional(), + }) + ) + .optional(), + newConditions: z + .array( + z.object({ + status_date: z.date().optional(), + status_value: z.string().optional(), + short_comments: z.string().optional(), + name: z.string().optional(), + }) + ) + .optional(), + professionals: z.record(z.any()).optional(), + recordId: z.string().optional(), + relatedRecords: z.string().optional(), + accelaStatus: z.string().optional(), + openDate: z.date().optional(), + lastUpdatedDate: z.date().optional(), + statusUpdated: z.date().optional(), + issuedDate: z.date().optional(), + communityName: z.string().nullable().optional(), + lot: z.string().nullable().optional(), + block: z.string().nullable().optional(), + jobNumber: z.string().nullable().optional(), + startDate: z.date().nullable().optional(), + history: z.record(z.any()).optional(), }; const createPermitInput = z.object({ diff --git a/src/permit/permit.service.ts b/src/permit/permit.service.ts index 33563a6..31d8aed 100644 --- a/src/permit/permit.service.ts +++ b/src/permit/permit.service.ts @@ -182,7 +182,7 @@ export async function listPermits( } export async function updatePermit( - input: UpdatePermitInput, + input: CreatePermitInput, permitId: string, user: AuthenticatedUser ) {