import { CreationMethod } from "src/request-management/entities/schema/request-management.schema"; export type ClaimPriceCapBlameOrigin = { creationMethod?: CreationMethod | string | null; expertInitiated?: boolean | null; registrarInitiated?: boolean | null; callCenterInitiated?: boolean | null; initiatedByFieldExpertId?: unknown; initiatedByRegistrarId?: unknown; initiatedByCallCenterId?: unknown; }; /** * The total-payment cap is a V1 business rule. V1 files are created directly * by a user (`NORMAL`); expert/registrar LINK or IN_PERSON files and V6 * call-center files must not inherit it. Missing creationMethod is treated as * NORMAL for older user-created records, while initiator markers take * precedence so legacy non-V1 records cannot be misclassified. */ export function claimPriceCapAppliesToBlame( blame?: ClaimPriceCapBlameOrigin | null, ): boolean { if (!blame) return false; const hasNonV1Initiator = blame.expertInitiated === true || blame.registrarInitiated === true || blame.callCenterInitiated === true || blame.initiatedByFieldExpertId != null || blame.initiatedByRegistrarId != null || blame.initiatedByCallCenterId != null; if (hasNonV1Initiator) return false; return ( blame.creationMethod == null || blame.creationMethod === CreationMethod.NORMAL ); }