barsa c7230f391a Refactor global exception handling and support case management
- Replaced multiple global exception filters with a unified exception filter to streamline error handling across the application.
- Removed deprecated AuthErrorFilter and GlobalExceptionFilter to reduce redundancy.
- Enhanced SupportController to include new endpoints for listing, retrieving, and creating support cases, improving the support case management functionality.
- Integrated SalesforceCaseService for better interaction with Salesforce data in support case operations.
- Updated support case schemas to align with new requirements and ensure data consistency.
2025-11-26 16:36:06 +09:00

75 lines
1.9 KiB
TypeScript

/**
* Support Domain - Contract
*
* Constants for support case statuses, priorities, and categories.
* These are the DISPLAY values shown in the portal UI.
*
* Note: Salesforce uses Japanese API names internally (e.g., 新規, 対応中, 高, 中, 低)
* which are mapped to these English display values by the Salesforce mapper.
*/
/**
* Portal display status values
* Mapped from Salesforce Japanese API names:
* - 新規 → New
* - 対応中 → In Progress
* - Awaiting Approval → Awaiting Approval
* - VPN Pending → VPN Pending
* - Pending → Pending
* - 完了済み → Resolved
* - Closed → Closed
*/
export const SUPPORT_CASE_STATUS = {
NEW: "New",
IN_PROGRESS: "In Progress",
AWAITING_APPROVAL: "Awaiting Approval",
VPN_PENDING: "VPN Pending",
PENDING: "Pending",
RESOLVED: "Resolved",
CLOSED: "Closed",
} as const;
/** Statuses that indicate a case is closed */
export const CLOSED_STATUSES = [
SUPPORT_CASE_STATUS.VPN_PENDING,
SUPPORT_CASE_STATUS.PENDING,
SUPPORT_CASE_STATUS.RESOLVED,
SUPPORT_CASE_STATUS.CLOSED,
] as const;
/** Statuses that indicate a case is open */
export const OPEN_STATUSES = [
SUPPORT_CASE_STATUS.NEW,
SUPPORT_CASE_STATUS.IN_PROGRESS,
SUPPORT_CASE_STATUS.AWAITING_APPROVAL,
] as const;
/**
* Portal display priority values
* Mapped from Salesforce Japanese API names:
* - 高 → High
* - 中 → Medium
* - 低 → Low
*/
export const SUPPORT_CASE_PRIORITY = {
LOW: "Low",
MEDIUM: "Medium",
HIGH: "High",
} as const;
/**
* Case categories map to Salesforce Case.Type field
* Note: Type picklist may not be configured in your org
*/
export const SUPPORT_CASE_CATEGORY = {
TECHNICAL: "Technical",
BILLING: "Billing",
GENERAL: "General",
FEATURE_REQUEST: "Feature Request",
} as const;
/**
* Portal Website origin - used to filter and create portal cases
*/
export const PORTAL_CASE_ORIGIN = "Portal Website" as const;