import { IEntityAuditColumn } from "../entity-audit-columns.interface"; import { IReimbursementEntity } from "../reimbursement.entity.interface"; import { IFieldMinMaxConstraint } from "./utils"; /** * excluded, and why: * - "billingType", "expenseIncurredBy", "billPresent", "status", "paymentStatus" * enums, they carry no min/max * - "attachmentUrlsCsv" url_multi field, bounded by max_size, * allowed_file_formats and count instead * - "id", keyof IEntityAuditColumn generated columns * * neither the create nor the update DTO carries a length or numeric bound for any of these * columns, so every max below comes from the column and none of them is wired into a DTO */ export type IReimbursementFieldLengthConstraintsExclude = "id" | "billingType" | "expenseIncurredBy" | "billPresent" | "status" | "paymentStatus" | "attachmentUrlsCsv" | keyof IEntityAuditColumn; /** * since some fields are optional, but we still need their * min & max length constraints, we need to make them required in this type * hence we are using -? to make all properties required in this type */ export type IReimbursementFieldMinMaxConstraints = { [K in keyof Omit]-?: IFieldMinMaxConstraint; }; export declare const reimbursementFieldMinMaxConstraints: IReimbursementFieldMinMaxConstraints;