wcz-layout
Version:
143 lines (142 loc) • 4.5 kB
JavaScript
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