Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import { subject } from '@casl/ability';
import {
type isPlanAgreementArchivable,
type isPlanAgreementAssignmentConfirmable,
type isPlanAgreementAssignmentDeletable,
type isPlanAgreementAssignmentRegenerable,
type isPlanAgreementAssignmentSendable,
type isPlanAgreementBulkDownloadable,
type isPlanAgreementDeletable,
type isPlanAgreementDuplicable,
type isPlanAgreementEditable,
type isPlanAgreementFinalizable,
type isPlanAgreementPreviewable,
type isPlanAgreementTemplateRefreshable,
} from '@amalia/plan-agreements/shared';
import { type PlanAgreement, type PlanAgreementAssignment } from '@amalia/plan-agreements/types';
import { SubjectsEnum } from '../../types';
// Agreement
export type ArchivePlanAgreementSubject = Parameters<typeof isPlanAgreementArchivable>;
export const archivePlanAgreementSubject = (...payload: ArchivePlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type BulkDownloadPlanAgreementSubject = Parameters<typeof isPlanAgreementBulkDownloadable>;
export const bulkDownloadPlanAgreementSubject = (...payload: BulkDownloadPlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type DuplicatePlanAgreementSubject = Parameters<typeof isPlanAgreementDuplicable>;
export const duplicatePlanAgreementSubject = (...payload: DuplicatePlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type DeletePlanAgreementSubject = Parameters<typeof isPlanAgreementDeletable>;
export const deletePlanAgreementSubject = (...payload: DeletePlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type EditPlanAgreementSubject = Parameters<typeof isPlanAgreementEditable>;
export const editPlanAgreementSubject = (...payload: EditPlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type FinalizePlanAgreementSubject = Parameters<typeof isPlanAgreementFinalizable>;
export const finalizePlanAgreementSubject = (...payload: FinalizePlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type PreviewPlanAgreementSubject = Parameters<typeof isPlanAgreementPreviewable>;
export const previewPlanAgreementSubject = (...payload: PreviewPlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type RefreshPlanAgreementTemplateSubject = Parameters<typeof isPlanAgreementTemplateRefreshable>;
export const refreshPlanAgreementTemplateSubject = (...payload: RefreshPlanAgreementTemplateSubject) =>
subject(SubjectsEnum.PlanAgreement, payload);
export type ViewPlanAgreementSubject = Pick<PlanAgreement, 'assignments' | 'createdAt' | 'status' | 'userAssignment'>;
export const viewPlanAgreementSubject = (payload: ViewPlanAgreementSubject) =>
subject(SubjectsEnum.PlanAgreement, { ...payload });
// Assignment
export type ConfirmPlanAgreementAssignmentSubject = [
Parameters<typeof isPlanAgreementAssignmentConfirmable>[0] & Pick<PlanAgreement, 'confirmationMethod'>,
Parameters<typeof isPlanAgreementAssignmentConfirmable>[1] & Pick<PlanAgreementAssignment, 'userId'>,
];
export const confirmPlanAgreementAssignmentSubject = (...payload: ConfirmPlanAgreementAssignmentSubject) =>
subject(SubjectsEnum.PlanAgreementAssignment, payload);
export type DeletePlanAgreementAssignmentSubject = Parameters<typeof isPlanAgreementAssignmentDeletable>;
export const deletePlanAgreementAssignmentSubject = (...payload: DeletePlanAgreementAssignmentSubject) =>
subject(SubjectsEnum.PlanAgreementAssignment, payload);
export type RegeneratePlanAgreementAssignmentSubject = [
Parameters<typeof isPlanAgreementAssignmentRegenerable>[0],
Parameters<typeof isPlanAgreementAssignmentRegenerable>[1] & { userId: PlanAgreementAssignment['userId'] },
];
export const regeneratePlanAgreementAssignmentSubject = (...payload: RegeneratePlanAgreementAssignmentSubject) =>
subject(SubjectsEnum.PlanAgreementAssignment, payload);
export type SendPlanAgreementAssignmentSubject = Parameters<typeof isPlanAgreementAssignmentSendable>;
export const sendPlanAgreementAssignmentSubject = (...payload: SendPlanAgreementAssignmentSubject) =>
subject(SubjectsEnum.PlanAgreementAssignment, payload);
export type ViewPlanAgreementAssignmentSubject = Pick<PlanAgreementAssignment, 'sentDate' | 'status' | 'userId'>;
export const viewPlanAgreementAssignmentSubject = (payload: ViewPlanAgreementAssignmentSubject) =>
subject(SubjectsEnum.PlanAgreementAssignment, { ...payload });
|