정산조회 - 정산내역 리스트 및 상세

This commit is contained in:
focp212@naver.com
2025-09-18 09:45:10 +09:00
parent 22bdd45f0a
commit 746358dfe1
42 changed files with 1388 additions and 704 deletions

View File

@@ -1,110 +1,199 @@
import { DefaulResponsePagination } from '@/entities/common/model/types';
import { DefaulResponsePagination, DefaultRequestPagination } from '@/entities/common/model/types';
export enum AltMsgKeys {
Fold = '접기',
UnFold = '펼치기',
};
export enum SortByKeys {
New = 'New',
Amount = 'Amount',
};
export interface SortOptionsBoxProps {
sortBy: SortByKeys;
onClickToSort: (sortBy: SortByKeys) => void;
};
export enum SettlementTabKeys {
Calendar = 'calendar',
List = 'list'
};
export enum DetailInfoKeys {
export enum InfoWrapKeys {
Amount = 'Amount',
Settlement = 'Settlement',
Transaction = 'Transaction'
};
export interface SettlementTabProps {
activeTab: SettlementTabKeys
};
export interface SettlementRequestParams {
tid?: string;
}
export interface SettlementDetailParams extends SettlementRequestParams {
svcCd: string;
export enum SettlementPeriodType {
SETTLEMENT_DATE = 'SETTLEMENT_DATE',
TRANSACTION_DATE = 'TRANSACTION_DATE',
};
export interface DetailAmountInfoProps {
export enum SettlementPaymentMethod {
ALL = 'ALL',
CREDIT_CARD = 'CREDIT_CARD',
VIRTUAL_ACCOUNT = 'VIRTUAL_ACCOUNT',
ACCOUNT_TRANSFER = 'ACCOUNT_TRANSFER',
ACCOUNT_EASY_PAY = 'ACCOUNT_EASY_PAY',
MOBILE_PAYMENT = 'MOBILE_PAYMENT',
SSG_MONEY = 'SSG_MONEY',
SSG_BANK_ACCOUNT = 'SSG_BANK_ACCOUNT',
CULTURE_VOUCHER = 'CULTURE_VOUCHER',
TMONEY_PAY = 'TMONEY_PAY',
};
export interface SettlementsTransactionSummaryParams {
mid: string;
amount: number;
cardAmount: number;
pointAmount: number;
couponAmount: number;
kakaoMoney: number;
kakaoPoint: number;
kakaoInstantDiscount: number;
naverPoint: number;
tossMoney: number;
tossDiscount: number;
paycoPoint: number;
paycoCoupon: number;
periodType: SettlementPeriodType;
startDate: string;
endDate: string;
paymentMethod: SettlementPaymentMethod;
transactionIds?: Array<string>;
pagination: DefaultRequestPagination
};
export interface SettlementsTransactionSummaryResponse {
settlementAmount?: number;
transactionAmount?: number;
paymentFeeAmount?: number;
escrowFeeAmount?: number;
authFeeAmount?: number;
vatAmount?: number;
preSettlementCancelOffset?: number;
};
export interface SettlementsTransactionListParams {
mid: string;
periodType: SettlementPeriodType;
startDate: string;
endDate: string;
paymentMethod: SettlementPaymentMethod;
pagination: DefaultRequestPagination;
};
export interface SettlementsTransactionListResponse extends DefaulResponsePagination {
content: Array<SettlementsTransactionListContent>;
};
export interface SettlementsTransactionListContent {
approvalNumber?: string;
mid?: string;
approvalDate?: string;
settlementDate?: string;
transactionAmount?: number;
};
export interface SettlementsTransactionDetailParams {
approvalNumber: string;
};
export interface SettlementsTransactionDetailResponse {
transactionAmount: number;
merchantName: string;
amountInfo: AmountInfo;
transactionInfo: TransactionInfo;
};
export interface AmountInfo {
transactionAmount: number;
paymentFee: number;
escrowFee: number;
authFee: number;
vatFee: number;
settlementAmount: number;
preSettlementCancelOffset: number;
finalSettlementAmount: number;
};
export interface DetailSettlementInfoProps {
approvalSettleDate: string;
approvalSettleAmount: number;
cancelSettleDate: string;
cancelSettleAmount: number;
export interface TransactionInfo {
orderNumber: string;
tid: string;
originalTid: string;
transactionStatus: string;
paymentMethod: string;
settlementDate: string;
approvalDate: string;
cancelDate: string;
cardCompany: string;
approvalNumber: string;
productName: string;
buyerName: string;
};
export interface DetailResponse {
amountInfo?: DetailAmountInfoProps;
settlementInfo?: DetailSettlementInfoProps;
export interface SettlementsHistoryParams {
mid: string;
periodType: SettlementPeriodType;
startDate: string;
endDate: string;
paymentMethod: SettlementPaymentMethod;
pagination: DefaultRequestPagination
};
export interface DetailInfoProps extends DetailResponse{
show?: boolean;
tid?: string;
onClickToShowInfo?: (info: DetailInfoKeys) => void;
export interface SettlementsHistoryResponse extends DefaulResponsePagination {
content: Array<SettlementsHistoryContent>;
};
export interface DetailArrowProps {
show?: boolean;
export interface SettlementsHistoryContent {
settlementId?: string;
settlementDate?: string;
merchantName?: string;
mid?: string;
settlementAmount?: number;
};
export interface SortOptionsBoxProps {
sortBy: SortByKeys;
onCliCkToSort: (sortBy: SortByKeys) => void;
export interface SettlementsHistorySummaryParams {
mid: string;
periodType: SettlementPeriodType;
startDate: string;
endDate: string;
paymentMethod: SettlementPaymentMethod;
};
export interface ListItemProps extends ListItem{
export interface SettlementsHistorySummaryResponse {
settlementAmount?: number;
transactionAmount?: number;
pgFeeAmount?: number;
holdAmount?: number;
releaseAmount?: number;
offsetAmount?: number;
};
export interface SettlementsHistoryDetailParams {
settlementId: string;
};
export interface SettlementsHistoryDetailResponse {
settlementAmount: number;
settlementDate: string;
amountInfo: AmountInfo;
settlementInfo: SettlementInfo;
};
export interface SettlementInfo {
mid: string;
transferStatus: string;
transferId: string;
transferTime: string;
bankName: string;
accountNumber: number;
depositorName: string;
settlementDepositAmount: number;
errorReason: string;
};
export interface SettlementsCalendarParams {
mid: string;
yearMonth: string;
};
export interface SettlementsCalendarResponse {
yearMonth: string;
totalCompletedAmount: number;
totalScheduledAmount: number;
settlementDays: Array<SettlementDays>;
};
export interface SettlementDays {
settlementDate: string;
completedAmount: number;
scheduledAmount: number;
settlementStatus: string;
};
export interface ListDateGroupProps {
date?: string;
items?: Array<ListItemProps>;
periodType: SettlementPeriodType;
items?: Array<SettlementsHistoryContent & SettlementsTransactionListContent>
};
export interface ListItem {
tid?: string;
mid?: string;
stateDate?: string;
stateCode?: string;
stateName?: string;
installmentMonth?: string;
serviceCode?: string;
serviceName?: string;
serviceDetailName?: string;
goodsAmount?: number;
};
export interface SettlementRequestParams {
tid?: string;
export interface ListItemProps extends SettlementsHistoryContent, SettlementsTransactionListContent {
periodType: SettlementPeriodType;
}
export interface SettlementListParams extends SettlementRequestParams {
moid: string;
fromDate: string;
toDate: string;
stateCode: string;
serviceCode: string;
minAmount: number;
maxAmount: number;
dateCl: string;
goodsName: string;
cardCode: string;
bankCode: string;
searchCl: string;
searchValue: string;
};
export interface SettlementListResponse extends DefaulResponsePagination {
content: Array<ListItemProps>;
};
export interface AmountInfoWrapProps {
periodType: SettlementPeriodType;
amountInfo?: AmountInfo;
};
export interface SettlementInfoWrapProps {
settlementInfo?: SettlementInfo;
show: boolean;
onClickToShowInfo: (infoWrapKey: InfoWrapKeys) => void;
};
export interface TransactionInfoWrapProps {
transactionInfo?: TransactionInfo;
show: boolean;
onClickToShowInfo: (infoWrapKey: InfoWrapKeys) => void;
};