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

export interface ExtensionPayoutRequestParams {
  mid: string;
  submallId: string;
  disbursementAmount: number;
  settlementDate: string;
};
export interface ExtensionPayoutRequestResponse {
  status: boolean;
  
  error?: {
    message?: string
  }
};
export enum PayoutSearchDateType {
  REQUEST_DATE = 'REQUEST_DATE',
  SETTLEMENT_DATE = 'SETTLEMENT_DATE',
};
export enum PayoutDisbursementStatus {
  ALL = '',
  REQUEST = 'REQUEST',
  SUCCESS = 'SUCCESS',
  FAIL = 'FAIL',
};
export interface ExtensionPayoutListParams {
  mid: string;
  searchDateType: PayoutSearchDateType,
  fromDate: string;
  toDate: string;
  status: PayoutDisbursementStatus;
  minAmount?: number;
  maxAmount?: number;
  page?: DefaultRequestPagination;
};
export interface ExtensionPayoutListResponse extends DefaulResponsePagination{
  content: Array<PayoutContent>
};
export interface PayoutContent {
  tid?: string;
  submallId?: string;
  requestDate?: string;
  settlementDate?: string;
  companyName?: string;
  status?: PayoutDisbursementStatus;
  amount?: number;
};
export interface ExtensionPayoutExcelParams {
  mid: string;
  email: string;
  fromDate: string;
  toDate: string;
};

export interface ExtensionPayoutExcelResponse {}

export interface ExtensionPayoutDetailParams {
  mid: string;
  tid: string;
};
export interface ExtensionPayoutDetailResponse {
  tid: string;
  disbursementAmount: number;
  disbursementStatus: PayoutDisbursementStatus;
  transTypeName: string;
  requestDate: string;
  settlementDate: string;
  settlementDateTime: string;
  companyName: string;
  companyNo: string;
  accountName: string;
  bankName: string;
  accountNo: string;
  depositName: string;
  failReason: string;
};
export interface ExtensionPayoutDetailDownloadCertificateParams extends ExtensionPayoutDetailParams {
  requestType: string;
  email: string;
};

export interface ExtensionPayoutDetailDownloadCertificateResponse {};
