import { DefaulResponsePagination } from '@/entities/common/model/types';

export enum AltMsgKeys {
  Fold = '접기',
  UnFold = '펼치기',
};
export enum SortByKeys {
  New = 'New',
  Amount = 'Amount',
};
export enum SettlementTabKeys {
  Calendar = 'calendar',
  List = 'list'
};
export enum DetailInfoKeys {
  Amount = 'Amount',
  Settlement = 'Settlement',
};
export interface SettlementTabProps {
  activeTab: SettlementTabKeys
};
export interface SettlementRequestParams {
  tid?: string;
}

export interface SettlementDetailParams extends SettlementRequestParams {
  svcCd: string;
};


export interface DetailAmountInfoProps {
  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;
  escrowFee: number;
};
export interface DetailSettlementInfoProps {
  approvalSettleDate: string;
  approvalSettleAmount: number;
  cancelSettleDate: string;
  cancelSettleAmount: number;
};
export interface DetailResponse {
  amountInfo?: DetailAmountInfoProps;
  settlementInfo?: DetailSettlementInfoProps;
};
export interface DetailInfoProps extends DetailResponse{
  show?: boolean;
  tid?: string;
  onClickToShowInfo?: (info: DetailInfoKeys) => void;
};
export interface DetailArrowProps {
  show?: boolean;
};
export interface SortOptionsBoxProps {
  sortBy: SortByKeys;
  onCliCkToSort: (sortBy: SortByKeys) => void;
};
export interface ListItemProps extends ListItem{
  
};
export interface ListDateGroupProps {
  date?: string;
  items?: Array<ListItemProps>;
};
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 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>;
};

