From 4447278b2cd6f015d0bcef937cb8dcf7a672d2c2 Mon Sep 17 00:00:00 2001 From: barsa Date: Thu, 25 Sep 2025 15:12:06 +0900 Subject: [PATCH] Update import path for SubCard component in AddressCard to improve module structure and maintainability. --- .../connection/types/connection.types.ts | 33 +++++++++++++++++++ .../account/components/AddressCard.tsx | 2 +- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 apps/bff/src/integrations/whmcs/connection/types/connection.types.ts diff --git a/apps/bff/src/integrations/whmcs/connection/types/connection.types.ts b/apps/bff/src/integrations/whmcs/connection/types/connection.types.ts new file mode 100644 index 00000000..6a813e2a --- /dev/null +++ b/apps/bff/src/integrations/whmcs/connection/types/connection.types.ts @@ -0,0 +1,33 @@ +export interface WhmcsApiConfig { + baseUrl: string; + identifier: string; + secret: string; + timeout?: number; + retryAttempts?: number; + retryDelay?: number; + // Optional elevated admin credentials for privileged actions (eg. AcceptOrder) + adminUsername?: string; + adminPasswordHash?: string; // MD5 hash of admin password +} + +export interface WhmcsRequestOptions { + useAdminAuth?: boolean; + timeout?: number; + retryAttempts?: number; +} + +export interface WhmcsRetryConfig { + maxAttempts: number; + baseDelay: number; + maxDelay: number; + backoffMultiplier: number; +} + +export interface WhmcsConnectionStats { + totalRequests: number; + successfulRequests: number; + failedRequests: number; + averageResponseTime: number; + lastRequestTime?: Date; + lastErrorTime?: Date; +} diff --git a/apps/portal/src/features/account/components/AddressCard.tsx b/apps/portal/src/features/account/components/AddressCard.tsx index cfca7ad7..05ec9fa6 100644 --- a/apps/portal/src/features/account/components/AddressCard.tsx +++ b/apps/portal/src/features/account/components/AddressCard.tsx @@ -1,6 +1,6 @@ "use client"; -import { SubCard } from "@/components/molecules/SubCard"; +import { SubCard } from "@/components/molecules/SubCard/SubCard"; import { MapPinIcon, PencilIcon, CheckIcon, XMarkIcon } from "@heroicons/react/24/outline"; import { AddressForm, type AddressFormProps } from "@/features/catalog/components"; import type { Address } from "@customer-portal/domain";