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

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

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.io.Serializable;

@Data
//@Builder
@SuperBuilder
@NoArgsConstructor
@Schema(name = "TmpltMngDTO")
public class TmpltMngDTO implements Serializable {

    private String dtype;

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

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

    @NotEmpty(message = "템플릿명칭은 필수 입력값 입니다.")
    @Length(max = 40, message = "템플릿명칭의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "메시지명칭", example = "테스트 템플릿")
    private String title;

    @NotEmpty(message = "템플릿메시지는 필수 입력값 입니다.")
    @Length(max = 1000, message = "템플릿메시지의 최대 길이를 초과 했습니다.")
    @Schema(required = true, title = "메시지", example = "해당 안내문은 다음과 같습니다.")
    private String message;

    @NotEmpty(message = "사용여부는 필수 입력값 입니다.")
    @Length(max = 1, message = "사용여부의 최대 길이를 초과 했습니다.")
    @Pattern(regexp = "(Y|N)", message = "사용여부는 Y 또는 N 만 입력 할 수 있습니다.")
    @Schema(required = true, title = "사용여부", example = "Y")
    private String useYn;


}
