UNPKG

wcz-layout

Version:

143 lines (142 loc) 4.5 kB
import z$1, { z } from "zod"; //#region src/models/approval/StepApprovalOrder.ts const StepApprovalOrder = z$1.enum([ "Serial", "Parallel", "OneOfThem" ]); //#endregion //#region src/models/approval/ApprovalFlow.ts const ApprovalFlowSchema = z.object({ id: z.uuid(), approvalStage: z.number(), batchSequence: z.number().optional(), approvalSequence: z.number(), stepApprovalOrder: StepApprovalOrder, steps: z.array(z.custom()), isActive: z.boolean().default(false).optional() }); //#endregion //#region src/models/approval/ApprovalEmployee.ts const ApprovalEmployeeSchema = z.object({ employeeId: z.string().trim().min(1).max(20), name: z.string().trim().min(1).max(50), email: z.email().min(1).max(100) }); //#endregion //#region src/models/approval/ApprovalStepResult.ts const ApprovalStepResult = z$1.enum([ "NotAvailable", "FutureApproval", "WaitingForApproval", "Approved", "Rejected", "Skipped", "Withdrawn", "Cancelled" ]); //#endregion //#region src/models/approval/ApprovalFlowStep.ts const ApprovalFlowStepSchema = z.object({ id: z.uuid(), order: z.number(), approverRole: z.string().trim().min(1).max(100).default("Approver").optional(), approver: ApprovalEmployeeSchema, actualApprover: ApprovalEmployeeSchema.optional(), result: ApprovalStepResult.default("NotAvailable").optional(), resultDate: z.date().optional(), resultComment: z.string().trim().max(2e3).optional() }); //#endregion //#region src/models/approval/ApprovalRequestType.ts const ApprovalRequestType = z$1.enum(["Single", "Batch"]); //#endregion //#region src/models/approval/ApprovalStatus.ts const ApprovalStatus = z$1.enum([ "WaitingForApproval", "Approved", "PartiallyApproved", "Rejected", "Withdrawn", "Cancelled" ]); //#endregion //#region src/models/approval/Approval.ts const ApprovalCoRequestorGroupSchema = z$1.object({ role: z$1.string().trim().min(1), email: z$1.email().optional() }); const ApprovalCoRequestorEmployeeSchema = z$1.object({ employeeId: z$1.string().trim().min(1), name: z$1.string().trim().min(1), email: z$1.email().optional() }); const ApprovalCoRequestorPrincipalSchema = z$1.union([ApprovalCoRequestorGroupSchema, ApprovalCoRequestorEmployeeSchema]); const ApprovalSchema = z$1.object({ id: z$1.uuid(), number: z$1.string().trim().max(30).optional(), applicationName: z$1.string().trim().min(1).max(50), type: ApprovalRequestType.default("Single").optional(), status: ApprovalStatus, created: z$1.date(), createdBy: z$1.custom(), updated: z$1.date().optional(), updatedBy: z$1.custom().optional(), approvalFlows: z$1.array(z$1.custom()).min(1), currentApprovers: z$1.array(z$1.custom()), coRequestors: z$1.array(z$1.object({ id: z$1.uuid(), principal: ApprovalCoRequestorPrincipalSchema })).optional() }); const CreateApprovalSchema = ApprovalSchema.pick({ id: true, number: true, applicationName: true, type: true, status: true, approvalFlows: true }).extend({ emailBody: z$1.string().trim().min(1), approvalFlows: z$1.array(ApprovalFlowSchema.pick({ approvalStage: true, batchSequence: true, stepApprovalOrder: true, steps: true }).extend({ steps: z$1.array(ApprovalFlowStepSchema.pick({ approverRole: true, approver: true })) })).min(1), coRequestors: z$1.array(ApprovalCoRequestorPrincipalSchema).optional() }); const ApproveApprovalSchema = z$1.object({ id: z$1.uuid(), result: ApprovalStepResult, resultComment: z$1.string().trim().max(2e3).optional(), emailBody: z$1.string().trim().min(1) }); const ResubmitApprovalSchema = ApprovalSchema.pick({ id: true, approvalFlows: true }).extend({ approvalFlows: z$1.array(ApprovalFlowSchema.pick({ approvalStage: true, batchSequence: true, stepApprovalOrder: true, steps: true }).extend({ steps: z$1.array(ApprovalFlowStepSchema.pick({ approverRole: true, approver: true })) })).min(1) }); const CancelApprovalSchema = z$1.object({ id: z$1.uuid(), comment: z$1.string().trim().min(1).max(2e3), emailBody: z$1.string().trim().min(1) }); const WithdrawApprovalSchema = z$1.object({ id: z$1.uuid(), comment: z$1.string().trim().min(1).max(2e3), emailBody: z$1.string().trim().min(1) }); //#endregion export { ResubmitApprovalSchema as a, ApprovalFlowStepSchema as c, ApprovalFlowSchema as d, CreateApprovalSchema as i, ApprovalStepResult as l, ApproveApprovalSchema as n, WithdrawApprovalSchema as o, CancelApprovalSchema as r, ApprovalStatus as s, ApprovalSchema as t, ApprovalEmployeeSchema as u }; //# sourceMappingURL=Approval-DBjc7AVj.js.map