package cokr.xit.ens.modules.common.ctgy.sys.mng.domain;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.time.LocalDateTime;

//@Data
@Entity
@Getter
@ToString
@SuperBuilder
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "ens_org_mng", schema = "", catalog = "")
//@SuperBuilder
//@Inheritance(strategy = InheritanceType.JOINED)
//@DiscriminatorColumn(name = "DTYPE")
public class OrgMng {

    @Id
    @Column(name = "org_cd", nullable = false, length = 20)
    private String orgCd;


    @Column(name = "org_nm", nullable = false, length = 30)
    @Setter
    private String orgNm;

    
    @Column(name = "regist_dt", nullable = true)
    @CreationTimestamp
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime registDt;


    @Column(name = "last_updt_dt", nullable = true)
    @UpdateTimestamp
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    private LocalDateTime lastUpdtDt;


    
    @Column(name = "kko_md_access_token", nullable = true, length = 50)
    @Setter
    private String kkoMdAccessToken;
    
    @Column(name = "kko_md_contract_uuid", nullable = true, length = 50)
    @Setter
    private String kkoMdContractUuid;

    
    @Column(name = "kko_bp_biller_code", nullable = true, length = 30)
    @Setter
    private String kkoBpBillerCode;
    
    @Column(name = "kko_bp_authorization", nullable = true, length = 64)
    @Setter
    private String kkoBpAuthorization;

    @Column(name = "kko_bp_csign_yn", nullable = true, length = 1)
    @Setter
    private String kkoBpCsignYn;
    
    @Column(name = "kko_bp_url_api", nullable = true, length = 100)
    @Setter
    private String kkoBpUrlApi;
    
    @Column(name = "kko_bp_notice_api", nullable = true, length = 100)
    @Setter
    private String kkoBpNoticeApi;
    
    @Column(name = "kko_bp_prepay_api", nullable = true, length = 100)
    @Setter
    private String kkoBpPrepayApi;
    
    @Column(name = "kko_bp_payresult_api", nullable = true, length = 100)
    @Setter
    private String kkoBpPayresultApi;

    
    @Column(name = "kko_at_bsid", nullable = true, length = 30)
    @Setter
    private String kkoAtBsid;
    
    @Column(name = "kko_at_passwd", nullable = true, length = 50)
    @Setter
    private String kkoAtPasswd;
    
    @Column(name = "kko_at_sender_key", nullable = true, length = 50)
    @Setter
    private String kkoAtSenderKey;

    
    @Column(name = "nice_cd_site_code", nullable = true, length = 30)
    @Setter
    private String niceCdSiteCode;
    
    @Column(name = "nice_cd_site_pw", nullable = true, length = 30)
    @Setter
    private String niceCdSitePw;
    
    @Column(name = "nice_cd_client_id", nullable = true, length = 50)
    @Setter
    private String niceCdClientId;
    
    @Column(name = "nice_cd_client_sercet", nullable = true, length = 50)
    @Setter
    private String niceCdClientSercet;

    
    @Column(name = "nv_st_x_naver_client_id", nullable = true, length = 30)
    @Setter
    private String nvStXNaverClientId;
    
    @Column(name = "nv_st_x_naver_client_secret", nullable = true, length = 30)
    @Setter
    private String nvStXNaverClientSecret;
    
    @Column(name = "nv_st_org_id", nullable = true, length = 50)
    @Setter
    private String nvStOrgId;

    
    @Column(name = "nv_bp_partner_id", nullable = true, length = 30)
    @Setter
    private String nvBpPartnerId;
    
    @Column(name = "nv_bp_client_id", nullable = true, length = 30)
    @Setter
    private String nvBpClientId;
    
    @Column(name = "nv_bp_client_secret", nullable = true, length = 30)
    @Setter
    private String nvBpClientSecret;
    
    @Column(name = "nv_bp_notice_api", nullable = true, length = 100)
    @Setter
    private String nvBpNoticeApi;
    
    @Column(name = "nv_bp_prepay_api", nullable = true, length = 100)
    @Setter
    private String nvBpPrepayApi;
    
    @Column(name = "nv_bp_payresult_api", nullable = true, length = 100)
    @Setter
    private String nvBpPayresultApi;
    
    @Column(name = "nv_bp_paycancel_api", nullable = true, length = 100)
    @Setter
    private String nvBpPaycancelApi;

    
    @Column(name = "kt_st_access_token", nullable = true, length = 1000)
    @Setter
    private String ktStAccessToken;
    
    @Column(name = "kt_st_service_cd", nullable = true, length = 5)
    @Setter
    private String ktStServiceCd;
   
    
    @Column(name = "kt_st_service_key", nullable = true, length = 100)
    @Setter
    private String ktStServiceKey;
    
    @Column(name = "kt_st_clientId", nullable = true, length = 50)
    @Setter
    private String ktStClientId;
    
    @Column(name = "kt_st_client_secret", nullable = true, length = 50)
    @Setter
    private String ktStClientSecret;


}
