package com.oqpo.api.web.dto.request.loanmng;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
public class EasypayPaymentRequest {

    @ApiModelProperty(value = "주문번호")
    private String poOrdNo;
    @ApiModelProperty(value = "결제유형(10:선불(충전), 20:후불(결제), 30:후불(선결제))", required = true)
    private String payTpCd;

    // @ApiModelProperty(value = "정산관리고유번호 - 후불(결제)인 경우 필수", required = true)
    // private String sttlMgntUnqNo;
    @ApiModelProperty(value = "결제 요청데이터 리스트", required = true)
    private List<EasypayPaymentReqData> reqDataList;

    @ApiModelProperty(value = "브랜드아이디")
    private String brandId;
    @ApiModelProperty(value = "매장아이디")
    private String storeId;

    @ApiModelProperty(value = "결제창 요청구분", required = true)
    @JsonProperty("EP_tr_cd")
    private String EP_tr_cd;
    @ApiModelProperty(value = "추적번호", required = true)
    @JsonProperty("EP_trace_no")
    private String EP_trace_no;
    @ApiModelProperty(value = "가맹점 주문번호", required = true)
    @JsonProperty("EP_order_no")
    private String EP_order_no;
    @ApiModelProperty(value = "가맹점 ID", required = true)
    @JsonProperty("EP_mall_id")
    private String EP_mall_id;
    @ApiModelProperty(value = "암호화 전문", required = true)
    @JsonProperty("EP_encrypt_data")
    private String EP_encrypt_data;
    @ApiModelProperty(value = "세션키", required = true)
    @JsonProperty("EP_sessionkey")
    private String EP_sessionkey;
    @ApiModelProperty(value = "거래구분", required = true)
    @JsonProperty("mgr_txtype")
    private String mgr_txtype;
    @ApiModelProperty(value = "변경세부구분", required = false)
    @JsonProperty("mgr_subype")
    private String mgr_subtype;
    @ApiModelProperty(value = "원거래고유번호", required = true)
    @JsonProperty("org_cno")
    private String org_cno;
    @ApiModelProperty(value = "금액", required = false)
    @JsonProperty("mgr_amt")
    private String mgr_amt;
    @ApiModelProperty(value = "부분취소 잔액", required = false)
    @JsonProperty("mgr_rem_amt")
    private String mgr_rem_amt;
    @ApiModelProperty(value = "환불계좌 은행코드", required = false)
    @JsonProperty("mgr_bank_cd")
    private String mgr_bank_cd;
    @ApiModelProperty(value = "환불계좌 번호", required = false)
    @JsonProperty("mgr_account")
    private String mgr_account;
    @ApiModelProperty(value = "환불계좌 예금주명", required = false)
    @JsonProperty("mgr_depositor")
    private String mgr_depositor;
    @ApiModelProperty(value = "요청자 ID", required = false)
    @JsonProperty("req_id")
    private String req_id;

    @ApiModelProperty(value = "원거래번호", required = true)
    @JsonProperty("org_payment_no")
    private String org_payment_no;

    @ApiModelProperty(value = "결제창 요청구분(모바일)", required = true)
    @JsonProperty("sp_tr_cd")
    private String sp_tr_cd;
    @ApiModelProperty(value = "추적번호(모바일)", required = true)
    @JsonProperty("sp_trace_no")
    private String sp_trace_no;
    @ApiModelProperty(value = "가맹점 주문번호(모바일)", required = true)
    @JsonProperty("sp_order_no")
    private String sp_order_no;
    @ApiModelProperty(value = "가맹점 ID(모바일)", required = true)
    @JsonProperty("sp_mall_id")
    private String sp_mall_id;
    @ApiModelProperty(value = "암호화 전문(모바일)", required = true)
    @JsonProperty("sp_encrypt_data")
    private String sp_encrypt_data;
    @ApiModelProperty(value = "세션키(모바일)", required = true)
    @JsonProperty("sp_sessionkey")
    private String sp_sessionkey;

    @ApiModelProperty(value = "결제금액", required = false)
    @JsonIgnore
    private Long r_amount;

}
