/**
 * BANKTRANSFER: 'OPM01', // 무통장입금
  CARD: 'OPM02', // 신용카드
  VIRTUAL: 'OPM03', // 가상계좌
  TRANSFER: 'OPM04', // 실시간계좌이체
  PHONE: 'OPM05', // 휴대폰결제
  FREE: 'OPM06', // 무료결제
  KAKAOPAY: 'OPM07', // 카카오페이
  NAVERPAY: 'OPM08', // 네이버페이
  TOSSPAY: 'OPM09', // 토스페이
  PAYCO: 'OPM10', // 페이코
  SAMSUNGPAY: 'OPM11', // 삼성페이
  SAMSUNGPAY_CHECK: 'OPM12', // 삼성페이 체크
  SSGPAY: 'OPM13', // 신세계
  LPAY: 'OPM14', // L페이
  KB_APP_PAY: 'OPM15', // KB앱페이
  CHIPAY: 'OPM16', // 차이페이
  TMONEYPAY: 'OPM17', // 티머니페이
  PINPAY: 'OPM18', // 핀페이
  APPLEPAY: 'OPM19', // 애플페이
 */ export type PaymentMethodCd = 'OPM01' | 'OPM02' | 'OPM03' | 'OPM04' | 'OPM05' | 'OPM06' | 'OPM07' | 'OPM08' | 'OPM09' | 'OPM10' | 'OPM11' | 'OPM12' | 'OPM13' | 'OPM14' | 'OPM15' | 'OPM16' | 'OPM17' | 'OPM18' | 'OPM19';
export type OmittedPaymentMethodCd = Exclude<PaymentMethodCd, 'OPM09' | 'OPM12' | 'OPM13' | 'OPM14' | 'OPM15' | 'OPM16' | 'OPM17' | 'OPM18' | 'OPM19'>;
/**
 * isRequire = 의무 발급 여부 Y, N (설정조건에 따라 의무대상인지 플래그처리)
methodTypeCd = 자동 발급 구분 (CRM01 - 연동발급이 좀더 정확한 표현인것같아요, CRM02 - 수동발급)
CRM01인 경우 PG호출을 통해 발급
자동발급은 member_code가 null (배치에의한 처리)
statusCd - 발급 상태 (CRS01 - 대기, CRS02 - 완료, CRS03 - 취소, CRS04 - 실패)
실패인 경우 methodTypeCd을 CRM02로 변경하면서 상태를 완료로 변경 (연동실패건 강제 수동완료처리)
 */
export type CashReceiptIssuanceMethodTypeCd = 'CRM01' | 'CRM02';
export type CashReceiptIssuanceStatusCd = 'CRS01' | 'CRS02' | 'CRS03' | 'CRS04';
export interface TotalPaymentInfoT {
    totalPrice: number;
    paymentPrice: number;
    deliveryPrice: {
        totalDeliveryPrice: number;
        deliveryPrice: number;
        deliveryIslandPrice: number;
        deliveryExtraPrice: number;
    };
    discountPrice: {
        totalDiscountPrice: number;
        gradeDiscount: number;
        itemCouponDiscount: number;
        itemPointAmount: number;
        deliveryCouponDiscount: number;
        deliveryPointAmount: number;
    };
    totalRefundPrice: number;
}
export interface CashReceipt {
    paymentCode: string;
    /**
     * @description 현금영수증종류코드(CRT00)
     * @example CRT01
     */
    typeCd: string;
    /**
     * @description 현금영수증처리상태코드(CRS00)
     * @example
     */
    statusCd: CashReceiptIssuanceStatusCd;
    /**
     * @description 현금영수증신청정보(AES-256)
     * @example
     */
    value: string;
    /**
     * @description 현금영수증 발행일시
     * @example
     */
    completeTime?: string;
    /**
     * @description 주문고객코드
     * @example m20230403adljf23asda
     */
    memberCode?: string;
    /**
     * @description 현금영수증발급방식코드(CRM00)
     * @example CRM01
     */
    methodTypeCd?: CashReceiptIssuanceMethodTypeCd;
    /**
     * @description 의무발행여부
     * @example N
     * @enum {string}
     */
    isRequire: 'Y' | 'N';
    /**
     * @description 구매자 신청여부
     * @example N
     * @enum {string}
     */
    isCustomer: 'Y' | 'N';
    /** @description 현금영수증 발급 번호 */
    issueNumber?: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
    /**
     * Format: date-time
     * @description 변경일시
     * @example 2022-03-31T10:35:48.000Z
     */
    mtime: string;
    /** @description 공급가액 */
    supplyPrice?: number;
    /** @description 부가가치세 */
    vatPrice?: number;
}
export interface PaymentEasyData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description payment code
     * @example pa2023051710164a38cdf21
     */
    paymentCode: string;
    /** @description JSON(PG사에서 얻은 간편결제 정보) */
    bodyData: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
}
export interface PaymentBankTransferData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description payment code
     * @example pa2023051710164a38cdf21
     */
    paymentCode: string;
    /**
     * @description 은행명
     * @example 국민 은행
     */
    bankName: string;
    /**
     * @description 은행 계좌번호
     * @example 123-456-789
     */
    bankAccount: string;
    /**
     * @description 예금주명
     * @example 아임웹
     */
    accountHolderName: string;
    /**
     * Format: date-time
     * @description 입금 만료 기간
     * @example 2022-03-31T10:35:48.000Z
     */
    expireTime: string;
    /**
     * @description 주문고객코드
     * @example m20230403adljf23asda
     */
    memberCode?: string;
    /**
     * Format: date-time
     * @description 입금 완료 일시
     * @example 2022-03-31T10:35:48.000Z
     */
    depositTime?: string;
    /**
     * @description 입금자명
     * @example 홍길동
     */
    depositor: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
}
export interface PaymentCardData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description payment code
     * @example pa2023051710164a38cdf21
     */
    paymentCode: string;
    /**
     * @description 카드사 코드
     * @example CCC02
     */
    companyCd: string;
    /**
     * @description 결제자 이름
     * @example 홍길동
     */
    payer: string;
    /**
     * @description 카드번호
     * @example 11112222****4444
     */
    cardNo: string;
    /**
     * @description 할부개월 수 (0이면 일시불)
     * @example 0
     */
    installment: number;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
}
export interface PaymentVirtualData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description payment code
     * @example pa2023051710164a38cdf21
     */
    paymentCode: string;
    /**
     * @description 은행명
     * @example 국민 은행
     */
    bankName: string;
    /**
     * @description 은행 계좌번호
     * @example 123-456-789
     */
    bankAccount: string;
    /**
     * @description 예금주명
     * @example 아임웹
     */
    accountHolderName: string;
    /**
     * Format: date-time
     * @description 입금 만료 기간
     * @example 2022-03-31T10:35:48.000Z
     */
    expireTime: string;
    /**
     * Format: date-time
     * @description 입금 완료 일시
     * @example 2022-03-31T10:35:48.000Z
     */
    depositTime?: string;
    /**
     * @description 입금자명
     * @example 홍길동
     */
    depositor: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
}
export interface PaymentTransferData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description payment code
     * @example pa2023051710164a38cdf21
     */
    paymentCode: string;
    /**
     * @description 은행명
     * @example 국민 은행
     */
    bankName: string;
    /**
     * @description 은행 계좌번호
     * @example 123-456-789
     */
    bankAccount: string;
    /**
     * @description 예금주명
     * @example 아임웹
     */
    accountHolderName: string;
    /**
     * @description 입금자명
     * @example 홍길동
     */
    depositor: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
}
export interface PaymentCashReceiptData {
    /**
     * @description 사이트코드
     * @example S20200210dfd51d8f58734
     */
    siteCode: string;
    /**
     * @description 결제코드
     * @example
     */
    paymentCode: string;
    /**
     * @description 현금영수증종류코드(CRT00)
     * @example CRT01
     */
    typeCd: string;
    /**
     * @description 현금영수증처리상태코드(CRS00)
     * @example
     */
    statusCd: CashReceiptIssuanceStatusCd;
    /**
     * @description 현금영수증신청정보(AES-256)
     * @example
     */
    value: string;
    /**
     * @description 현금영수증 발행일시
     * @example
     */
    completeTime?: string;
    /**
     * @description 주문고객코드
     * @example m20230403adljf23asda
     */
    memberCode?: string;
    /**
     * @description 현금영수증발급방식코드(CRM00)
     * @example CRM01
     */
    methodTypeCd: CashReceiptIssuanceMethodTypeCd;
    /**
     * @description 의무발행여부
     * @example N
     * @enum {string}
     */
    isRequire: 'Y' | 'N';
    /**
     * @description 구매자 신청여부
     * @example N
     * @enum {string}
     */
    isCustomer: 'Y' | 'N';
    /** @description 현금영수증 발급 번호 */
    issueNumber?: string;
    /**
     * Format: date-time
     * @description 등록일시
     * @example 2022-03-31T10:35:48.000Z
     */
    wtime: string;
    /**
     * Format: date-time
     * @description 변경일시
     * @example 2022-03-31T10:35:48.000Z
     */
    mtime: string;
    /** @description 공급가액 */
    supplyPrice?: number;
    /** @description 부가가치세 */
    vatPrice?: number;
}
export interface PaymentWithMethodDetailData {
    /** @description 사이트 코드 */
    siteCode: string;
    /** @description 결제코드 */
    paymentCode: string;
    /** @description 결제번호(노출용) */
    paymentNo: string;
    /** @description 주문코드 */
    orderCode: string;
    /** @description 취소결제여부 */
    isCancel: string;
    /** @description PG구분번호 */
    pgIdx?: number;
    /**
     * @description 결제상태구분코드(OPS00)
     * @enum {string}
     */
    statusCd: 'OPS01' | 'OPS02' | 'OPS03' | 'OPS04' | 'OPS05' | 'OPS06' | 'OPS07';
    /** @description 결제금액(취소일때는마이너스) */
    paidPrice: number;
    /**
     * @description 면세금액
     * @default 0
     */
    taxFreePrice: number;
    /**
     * @description PG처리일시
     * @example 2022-05-15T00:00:00.000Z
     */
    pgTrxTime?: string;
    /**
     * @description 결제수단구분코드(OPM00)
     * @enum {string}
     */
    methodCd: OmittedPaymentMethodCd;
    /** @description pg사명 */
    pgName: string;
    /**
     * @description pg사 결제 방식 코드
     * @enum {string}
     */
    pgMethodCd: 'OPM01' | 'OPM02' | 'OPM03' | 'OPM04' | 'OPM05' | 'OPM06' | 'OPM07' | 'OPM08' | 'OPM09' | 'OPM10' | 'OPM11' | 'OPM12' | 'OPM13' | 'OPM14' | 'OPM15' | 'OPM16' | 'OPM17' | 'OPM18' | 'OPM19';
    /**
     * @description 결제 일자
     * @example 2022-12-11 13:00:00
     */
    wtime: string;
    /** @description 결제 현금영수증 정보 */
    cashReceipt?: PaymentCashReceiptData;
    /** @description 간편결제 정보 */
    easy?: PaymentEasyData;
    /** @description 무통장입금 결제 정보 */
    bankTransfer?: PaymentBankTransferData;
    /** @description 신용카드 결제 정보 */
    card?: PaymentCardData;
    /** @description 가상계좌 결제 정보 */
    virtual?: PaymentVirtualData;
    /** @description 실시간계좌이체 결제 정보 */
    transfer?: PaymentTransferData;
}
export interface PaymentByPaymentNoData {
    /** @description 결제번호(노출용) */
    paymentNo: string;
    /**
     * @description 복합과세 여부
     * @example Y
     * @enum {string}
     */
    complexTax?: 'Y' | 'N';
    /**
     * @description 결제상태구분코드(OPS00)
     * @enum {string}
     */
    statusCd: 'OPS01' | 'OPS02' | 'OPS03' | 'OPS04' | 'OPS05' | 'OPS06' | 'OPS07';
    /** @description 결제금액(취소일때는마이너스) */
    paidPrice: number;
    /**
     * @description 면세금액
     * @default 0
     */
    taxFreePrice?: number;
    /** @description 주문 결제정보 및 결제방식 별 상세 정보 목록 */
    data: PaymentWithMethodDetailData[];
}
