package cokr.xit.ens.biz.iup.domain;

import cokr.xit.ens.core.jpa.support.BooleanToYnConverter;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.*;
import java.time.LocalDateTime;

@Entity
//@Data
@Getter
@ToString
@Builder
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "tb_naver_pay_result", schema = "", catalog = "")
public class TbNaverPayResult {

    @Id
    @Column(name = "data_id", length = 30)
    private String dataId;

    
    @Column(name = "job_se", length = 1, nullable = true)
    private String jobSe;

    
    @Column(name = "payment_id", length = 50)
    private String paymentId;

    
    @Column(name = "pay_hist_id", length = 50)
    private String payHistId;
    
    @Column(name = "merchant_id", length = 50)
    private String merchantId;
    
    @Column(name = "merchant_name", length = 50)
    private String merchantName;
    
    @Column(name = "merchant_pay_key", length = 64)
    private String merchantPayKey;
    
    @Column(name = "merchant_user_key", length = 50)
    private String merchantUserKey;
    
    @Column(name = "admission_type_code", length = 2)
    private String admissionTypeCode;
    
    @Column(name = "admission_ymdt", length = 14)
    private String admissionYmdt;
    
    @Column(name = "trade_confirm_ymdt", length = 50)
    private String tradeConfirmYmdt;
    
    @Column(name = "admission_state", length = 10)
    private String admissionState;
    
    @Column(name = "total_pay_amount")
    private Integer totalPayAmount;
    
    @Column(name = "primary_pay_amount")
    private Integer primaryPayAmount;
    
    @Column(name = "npoint_pay_amount")
    private Integer npointPayAmount;
    
    @Column(name = "gift_card_amount")
    private Integer giftCardAmount;
    
    @Column(name = "tax_scope_amount")
    private Integer taxScopeAmount;
    
    @Column(name = "tax_ex_scope_amount")
    private Integer taxExScopeAmount;
    
    @Column(name = "environment_deposit_amount")
    private Integer environmentDepositAmount;
    
    @Column(name = "primary_pay_means", length = 10)
    private String primaryPayMeans;
    
    @Column(name = "card_corp_code", length = 10)
    private String cardCorpCode;
    
    @Column(name = "card_no", length = 50)
    private String cardNo;
    
    @Column(name = "card_auth_no", length = 30)
    private String cardAuthNo;
    
    @Column(name = "card_inst_count")
    private Integer cardInstCount;
    
    @Column(name = "used_card_point", length = 1)
    @Convert(converter = BooleanToYnConverter.class)
    private Boolean usedCardPoint;
    
    @Column(name = "bank_corp_code", length = 10)
    private String bankCorpCode;
    
    @Column(name = "bank_account_no", length = 50)
    private String bankAccountNo;
    
    @Column(name = "product_name", length = 128)
    private String productName;
    
    @Column(name = "settle_expected", length = 1)
    @Convert(converter = BooleanToYnConverter.class)
    private Boolean settleExpected;
    
    @Column(name = "settle_expect_amount")
    private Integer settleExpectAmount;
    
    @Column(name = "pay_commission_amount")
    private Integer payCommissionAmount;
    
    @Column(name = "extra_deduction", length = 1)
    @Convert(converter = BooleanToYnConverter.class)
    private Boolean extraDeduction;
    
    @Column(name = "use_cfm_ymdt", length = 8)
    private String useCfmYmdt;
    
    @Column(name = "merchant_extra_parameter", length = 400)
    private String merchantExtraParameter;
    
    @Column(name = "user_identifier", length = 44)
    private String userIdentifier;


    
    @Column(name = "pay_result_process_sttus", length = 1, nullable = true)
    private String payResultProcessSttus;

    
    @CreationTimestamp
    @Column(name = "creat_dt", nullable = true)
    private LocalDateTime creatDt;

    
    @Column(name = "crtr", length = 50, nullable = true)
    private String crtr;

    
    @UpdateTimestamp
    @Column(name = "updt_dt", nullable = true)
    private LocalDateTime updtDt;

    
    @Column(name = "updusr", length = 50, nullable = true)
    private String updusr;


}
