59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
|
|
/**
|
||
|
|
* Address Domain - Constants
|
||
|
|
*
|
||
|
|
* Field length limits for address validation.
|
||
|
|
* These limits ensure composed values fit within WHMCS API constraints.
|
||
|
|
*/
|
||
|
|
|
||
|
|
// ============================================================================
|
||
|
|
// WHMCS Address Field Limits
|
||
|
|
// ============================================================================
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Maximum lengths for WHMCS address API fields.
|
||
|
|
* These are the hard limits imposed by the WHMCS system.
|
||
|
|
*/
|
||
|
|
export const WHMCS_ADDRESS_LIMITS = {
|
||
|
|
/** Maximum length for address1 field (building + room) */
|
||
|
|
ADDRESS1_MAX: 200,
|
||
|
|
/** Maximum length for address2 field (town + street address) */
|
||
|
|
ADDRESS2_MAX: 200,
|
||
|
|
/** Maximum length for city field */
|
||
|
|
CITY_MAX: 100,
|
||
|
|
/** Maximum length for state field */
|
||
|
|
STATE_MAX: 100,
|
||
|
|
} as const;
|
||
|
|
|
||
|
|
// ============================================================================
|
||
|
|
// Input Field Limits
|
||
|
|
// ============================================================================
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Maximum lengths for user input fields.
|
||
|
|
* Calculated to ensure composed values fit within WHMCS limits.
|
||
|
|
*
|
||
|
|
* Building + Room composition for WHMCS address1:
|
||
|
|
* - "Building Name Room123" = buildingName + " " + roomNumber
|
||
|
|
* - Max: 169 + 1 (space) + 30 = 200 chars
|
||
|
|
*/
|
||
|
|
export const ADDRESS_INPUT_LIMITS = {
|
||
|
|
/**
|
||
|
|
* Building name max length (169 chars).
|
||
|
|
* Calculation: WHMCS_ADDRESS1_MAX(200) - space(1) - ROOM_NUMBER_MAX(30) = 169
|
||
|
|
*/
|
||
|
|
BUILDING_NAME_MAX: 169,
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Room number max length (30 chars).
|
||
|
|
* Allows for long format like "Room 2051-A-Special"
|
||
|
|
*/
|
||
|
|
ROOM_NUMBER_MAX: 30,
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Street address max length (20 chars).
|
||
|
|
* Format: chome-banchi-go (e.g., "99-999-999")
|
||
|
|
* Already enforced by streetAddressDetailSchema regex.
|
||
|
|
*/
|
||
|
|
STREET_ADDRESS_MAX: 20,
|
||
|
|
} as const;
|