diff --git a/src/entities/additional-service/model/types.ts b/src/entities/additional-service/model/types.ts index 16cf00e..c6f9be1 100644 --- a/src/entities/additional-service/model/types.ts +++ b/src/entities/additional-service/model/types.ts @@ -68,6 +68,92 @@ export interface SortOptionsBoxProps { sortBy: SortByKeys; onClickToSort: (sortBy: SortByKeys) => void; }; + +// 부가서비스 카테고리 enum +export enum AdditionalServiceCategory { + KeyInPayment = 'KeyInPayment', + AccountHolderSearch = 'AccountHolderSearch', + LinkPaymentShipping = 'LinkPaymentShipping', + LinkPaymentPending = 'LinkPaymentPending', + FundTransfer = 'FundTransfer', + SettlementAgency = 'SettlementAgency', +} + +// 각 서비스별 개별 타입들 +export interface KeyInPaymentListItem { + tid?: string; + mid?: string; + stateDate?: string; + stateCode?: string; + stateName?: string; + installmentMonth?: string; + serviceCode?: string; + serviceName?: string; + serviceDetailName?: string; + goodsAmount?: number; +} + +export interface AccountHolderSearchListItem { + requestId?: string; + requestDate?: string; + bank?: string; + accountNumber?: string; + accountHolder?: string; + processResult?: string; +} + +export interface LinkPaymentShippingListItem { + transactionId?: string; + customerName?: string; + status?: string; + channel?: string; + amount?: number; + sendDate?: string; + transactionDate?: string; +} + +export interface LinkPaymentPendingListItem { + transactionId?: string; + customerName?: string; + status?: string; + channel?: string; + amount?: number; + requestDate?: string; +} + +// 공통 ListItemProps (transaction과 동일한 패턴) +export interface ListItemProps extends KeyInPaymentListItem, AccountHolderSearchListItem, LinkPaymentShippingListItem, LinkPaymentPendingListItem { + additionalServiceCategory?: AdditionalServiceCategory; +} + +// 공통 ListDateGroupProps +export interface ListDateGroupProps { + additionalServiceCategory?: AdditionalServiceCategory; + date?: string; + items?: Array; +} +// 공통 리스트 Props +export interface AdditionalServiceListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface LinkPaymentShippingListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface LinkPaymentPendingListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface AccountHolderSearchListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} +export interface KeyInPaymentListProps { + additionalServiceCategory: AdditionalServiceCategory; + listItems: Record>; +} + export interface SettlementAgencyTabProps { activeTab: SettlementAgencyTabKeys; }; diff --git a/src/entities/additional-service/ui/fund-transfer-request-list-wrap.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-request-list-wrap.tsx similarity index 100% rename from src/entities/additional-service/ui/fund-transfer-request-list-wrap.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-request-list-wrap.tsx diff --git a/src/entities/additional-service/ui/fund-transfer-result-inquiry-wrap.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-result-inquiry-wrap.tsx similarity index 100% rename from src/entities/additional-service/ui/fund-transfer-result-inquiry-wrap.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-result-inquiry-wrap.tsx diff --git a/src/entities/additional-service/ui/fund-transfer-tab.tsx b/src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx similarity index 97% rename from src/entities/additional-service/ui/fund-transfer-tab.tsx rename to src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx index cd47251..721a4ad 100644 --- a/src/entities/additional-service/ui/fund-transfer-tab.tsx +++ b/src/entities/additional-service/ui/fund-transfer/fund-transfer-tab.tsx @@ -3,7 +3,7 @@ import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { FundTransferTabKeys, FundTransferTabProps -} from '../model/types'; +} from '../../model/types'; export const FundTransferTab = ({ activeTab }: FundTransferTabProps) => { diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx b/src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx similarity index 99% rename from src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx rename to src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx index f4d0e5c..2c02f8e 100644 --- a/src/entities/additional-service/ui/key-in-payment/key-in-payment-filter.tsx +++ b/src/entities/additional-service/ui/key-in-payment/filter/key-in-payment-filter.tsx @@ -11,7 +11,7 @@ import { FilterRangeAmount } from '@/shared/ui/filter/range-amount'; import { KeyInPaymentFilterProps, KeyInPaymentTransactionStatus -} from '../../model/types'; +} from '../../../model/types'; export const KeyInPaymentFilter = ({ filterOn, diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-item.tsx b/src/entities/additional-service/ui/key-in-payment/key-in-payment-item.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx b/src/entities/additional-service/ui/key-in-payment/key-in-payment-list.tsx new file mode 100644 index 0000000..e69de29 diff --git a/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx b/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx deleted file mode 100644 index d99a4a6..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-date-group.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import moment from 'moment'; -import 'moment/dist/locale/ko'; -import { LinkPaymentItem } from './link-payment-item'; -import { JSX } from 'react'; - -interface LinkPaymentTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - paymentMethod: string; - amount: number; -} - -interface LinkPaymentDateGroupProps { - date: string; - items: LinkPaymentTransaction[]; -} - -export const LinkPaymentDateGroup = ({ - date, - items -}: LinkPaymentDateGroupProps) => { - moment.locale('ko'); - const getStateDate = () => { - let stateDate = moment(date).format('YY.MM.DD(ddd)'); - return stateDate; - }; - - const getLinkPaymentItem = () => { - const rs: JSX.Element[] = []; - if (items && items.length > 0) { - items.forEach((item, index) => { - const key = 'LinkPaymentItem-' + index; - rs.push( - - ) - }); - } - - return rs; - }; - - return ( - <> -
{getStateDate()}
- {getLinkPaymentItem()} - - ); -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-list.tsx b/src/entities/additional-service/ui/link-payment/link-payment-list.tsx deleted file mode 100644 index e4094aa..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-list.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import { LinkPaymentDateGroup } from './link-payment-date-group'; - -interface LinkPaymentTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - paymentMethod: string; - amount: number; -} - -interface LinkPaymentListProps { - listItems: Record; -} - -export const LinkPaymentList = ({ - listItems -}: LinkPaymentListProps) => { - - const getListDateGroup = () => { - let rs = []; - for (const [key, value] of Object.entries(listItems)) { - rs.push( - - ); - } - return rs; - }; - - return ( - <> -
- {getListDateGroup()} -
- - ) -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx b/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx deleted file mode 100644 index c481b4e..0000000 --- a/src/entities/additional-service/ui/link-payment/link-payment-pending-date-group.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import moment from 'moment'; -import 'moment/dist/locale/ko'; -import { LinkPaymentPendingItem } from './link-payment-pending-item'; -import { JSX } from 'react'; - -interface LinkPaymentPendingTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - amount: number; -} - -interface LinkPaymentPendingDateGroupProps { - date: string; - items: LinkPaymentPendingTransaction[]; -} - -export const LinkPaymentPendingDateGroup = ({ - date, - items -}: LinkPaymentPendingDateGroupProps) => { - moment.locale('ko'); - const getStateDate = () => { - let stateDate = moment(date).format('YY.MM.DD(ddd)'); - return stateDate; - }; - - const getLinkPaymentPendingItem = () => { - const rs: JSX.Element[] = []; - if (items && items.length > 0) { - items.forEach((item, index) => { - const key = 'LinkPaymentPendingItem-' + index; - rs.push( - - ) - }); - } - - return rs; - }; - - return ( - <> -
{getStateDate()}
- {getLinkPaymentPendingItem()} - - ); -}; \ No newline at end of file diff --git a/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx b/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx index ec705ec..bb9accc 100644 --- a/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx +++ b/src/entities/additional-service/ui/link-payment/link-payment-pending-list.tsx @@ -1,16 +1,5 @@ -import { LinkPaymentPendingDateGroup } from './link-payment-pending-date-group'; - -interface LinkPaymentPendingTransaction { - transactionId: string; - customerName: string; - status: string; - channel: string; - amount: number; -} - -interface LinkPaymentPendingListProps { - listItems: Record; -} +import { LinkPaymentPendingListProps } from '../../model/types'; +import { ListDateGroup } from '../list-date-group'; export const LinkPaymentPendingList = ({ listItems @@ -20,7 +9,7 @@ export const LinkPaymentPendingList = ({ let rs = []; for (const [key, value] of Object.entries(listItems)) { rs.push( - { + additionalServiceCategory={AdditionalServiceCategory.LinkPaymentPending} + >
- + additionalServiceCategory={ AdditionalServiceCategory.LinkPaymentShipping } + >