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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;

@Data
@Builder
@Schema(name = "OrgMngDTO")
public class OrgMngDTO {


    @NotEmpty(message = "기관코드는 필수 입력값 입니다.")
    @Length(max = 20, message = "기관코드의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "기관코드", example = "EX_ORG001")
    private String orgCd;

    @NotEmpty(message = "기관명은 필수 입력값 입니다.")
    @Length(max = 30, message = "기관명의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "기관명", example = "테스트 기관")
    private String orgNm;


    @Length(max = 50, message = "(계약정보)엑세스토큰의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)엑세스토큰", example = " ")
    private String kkoMdAccessToken;
    @Length(max = 50, message = "(계약정보)계약Uuid의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)계약Uuid", example = " ")
    private String kkoMdContractUuid;

    @Length(max = 30, message = "(계약정보)빌러코드의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)빌러코드", example = " ")
    private String kkoBpBillerCode;
    @Length(max = 64, message = "(계약정보)허가코드의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)허가코드", example = " ")
    private String kkoBpAuthorization;
    @Pattern(regexp = "(Y|N)", message = "납부요청 위탁여부는 Y 또는 N 만 입력 할 수 있습니다.")
    @Schema(required = false, title = "납부요청 위탁여부", example = " ")
    private String kkoBpCsignYn;
    @Length(max = 100, message = "청구서링크생성정보API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 청구서링크생성정보API URL", example = " ")
    private String kkoBpUrlApi;
    @Length(max = 100, message = "납부정보조회API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부정보조회API URL", example = " ")
    private String kkoBpNoticeApi;
    @Length(max = 100, message = "납부가능조회API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부가능조회API URL", example = " ")
    private String kkoBpPrepayApi;
    @Length(max = 100, message = "납부결과API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부결과API URL", example = " ")
    private String kkoBpPayResultApi;

    @Length(max = 30, message = "(계약정보)bs아이디의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)bs아이디", example = " ")
    private String kkoAtBsid;
    @Length(max = 50, message = "(계약정보)패스워드의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)패스워드", example = " ")
    private String kkoAtPasswd;
    @Length(max = 50, message = "(계약정보)발송자키의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)발송자키", example = " ")
    private String kkoAtSenderKey;

    @Length(max = 30, message = "(계약정보)사이트코드(socket)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)사이트코드(socket)", example = " ")
    private String niceCdSiteCode;
    @Length(max = 30, message = "(계약정보)사이트패스워드(socket)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)사이트패스워드(socket)", example = " ")
    private String niceCdSitePw;
    @Length(max = 50, message = "(계약정보)클라이언트ID(rest)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트ID(rest)", example = " ")
    private String niceCdClientId;
    @Length(max = 50, message = "(계약정보)클라이언트패스워드(rest)의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트패스워드(rest)", example = " ")
    private String niceCdClientSercet;

    @Length(max = 30, message = "(계약정보)클라이언트 아이디의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트 아이디", example = " ")
    private String nvStXNaverClientId;
    @Length(max = 30, message = "(계약정보)클라이언트 패스워드의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트 패스워드", example = " ")
    private String nvStXNaverClientSecret;
    @Length(max = 50, message = "(계약정보)하위기관명의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)하위기관명", example = " ")
    private String nvStOrgId;

    @Length(max = 30, message = "(계약정보)파트너ID의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)파트너ID", example = " ")
    private String nvBpPartnerId;
    @Length(max = 30, message = "(계약정보)클라이언트ID의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트ID", example = " ")
    private String nvBpClientId;
    @Length(max = 30, message = "(계약정보)클라이언트Pwd의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)클라이언트Pwd", example = " ")
    private String nvBpClientSecret;
    @Length(max = 100, message = "납부정보조회API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부정보조회API URL", example = " ")
    private String nvBpNoticeApi;
    @Length(max = 100, message = "납부가능조회API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부가능조회API URL", example = " ")
    private String nvBpPrepayApi;
    @Length(max = 100, message = "납부결과API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 납부결과API URL", example = " ")
    private String nvBpPayresultApi;
    @Length(max = 100, message = "결제취소API의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "이용시스템의 결제취소API URL", example = " ")
    private String nvBpPaycancelApi;

    @Length(max = 1000, message = "(계약정보)엑세스토큰의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)엑세스토큰", example = " ")
    private String ktStAccessToken;
    @Length(max = 5, message = "(계약정보)서비스코드의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)서비스코드", example = " ")
    private String ktStServiceCd;
    @Length(max = 100, message = "(계약정보)서비스키의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)서비스키", example = " ")
    private String ktStServiceKey;
    @Length(max = 50, message = "(계약정보)고객ID의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)고객ID", example = " ")
    private String ktStClientId;
    @Length(max = 50, message = "(계약정보)고객비밀번호의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "(계약정보)고객비밀번호", example = " ")
    private String ktStClientSecret;

}
