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

export enum PaymentStatus {
  ALL = '',
  COMPLETE = 'COMPLETE',
  UNPAID = 'UNPAID'
};
export enum OrderStatus {
  ALL = '',
  PENDING = 'PENDING',
  SUCCESS = 'SUCCESS',
  EXPIRED = 'EXPIRED',
  CANCELED = 'CANCELED',
};
export enum ArsPaymentMethod {
  SMS = 'SMS',
  ARS = 'ARS'
};
export interface ExtensionArsResendParams {
  mid: string;
  tid: string;
};
export interface ExtensionArsResendResponse {
  status: boolean;
};
export interface ExtensionArsListParams {
  mid?: string;
  moid?: string;
  fromDate?: string;
  toDate?: string;
  paymentStatus?: PaymentStatus
  orderStatus?: OrderStatus;
  minAmount?: number;
  maxAmount?: number;
  page?: DefaultRequestPagination;
};
export interface ArsListContent {
  tid?: string;
  orderDate?: string;
  orderTime?: string;
  buyerName?: string;
  buyerPhoneLast4?: string;
  orderStatus?: string;
  transactionType?: string;
  amount?: number;
  statusColor?: string;
};
export interface ExtensionArsListResponse extends DefaulResponsePagination {
  content: Array<ArsListContent>;
};
export interface ExtensionArsDownloadExcelParams {
  mid?: string;
  moid?: string;
  fromDate?: string;
  toDate?: string;
  paymentStatus?: PaymentStatus;
  orderStatus?: string;
  minAmount?: number;
  maxAmount?: number;
};
export interface ExtensionArsDownloadExcelResponse {};
export interface ExtensionArsDetailParams {
  mid: string;
  tid: string;
};
export interface ExtensionArsDetailResponse {
  corpName: string;
  mid: string;
  arsPaymentMethod: string;
  amount: string;
  paymentStatus: PaymentStatus;
  orderStatus: string;
  paymentDate: string;
  goodsName: string;
  tid: string;
  buyerName: string;
  phoneNumber: string;
  maskPhoneNumber: string;
  email: string;
  smsVerificationCode: string;
};
export interface ExtensionArsApplyParams {
  mid: string;
  moid: string;
  goodsName: string;
  amount: number;
  instmntMonth: string;
  buyerName: string;
  phoneNumber: string;
  email: string;
  arsPaymentMethod: string;
};
export interface ExtensionArsApplyResponse {
  status: boolean;
  error?: {
    root?: string;
    errKey?: string;
    code?: string;
    message?: string;
    timestamp?: string;
    details?: {
      path?: string;
    };
  };
};