package cokr.xit.ens.modules.kkoalimtalk.model.config;

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

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;

@Getter
@ToString
@SuperBuilder
@Schema(name = "DocumentConfKkoAt")
@NoArgsConstructor
public class DocumentConfKkoAt {

    @Length(max = 6, message = "국가코드의 최대 길이를 초과 했습니다.")
    @NotEmpty(message = "국가코드는 필수 입력값 입니다.")
    @Schema(required = true, title = "국가코드", example = "82")
    private String country_code;

//    @Length(max = 40, message = "발신프로필키의 최대 길이를 초과 했습니다.")
//    @NotEmpty(message = "카카오 발신 프로필 키는 필수 입력값 입니다.")
//    @Schema(required = true, title = "카카오 발신 프로필 키", example = " ")
//    private String sender_key;

    @Length(max = 20, message = "앱유저 아이디의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "사용자의 고유 앱유저 아이디", example = " ")
    private String app_user_id;

//    @Length(max = 20, message = "부서구분 코드의 최대 길이를 초과 했습니다.")
//    @Schema(required = false, title = "부서구분 코드", example = " ")
//    private String org_code;

//    @Length(max = 1000, message = "발신메시지내용의 최대 길이를 초과 했습니다.")
//    @NotEmpty(message = "발신 메시지 내용은 필수 입력값 입니다.")
//    @Schema(required = true, title = "발신 메시지 내용", example = " ")
//    private String message;

//    @Length(max = 30, message = "템플릿코드의 최대 길이를 초과 했습니다.")
//    @NotEmpty(message = "템플릿코드는 필수 입력값 입니다.")
//    @Schema(required = true, title = "등록한 템플릿의 템플릿 코드", example = " ")
//    private String tmplt_code;

    @Length(max = 50, message = "강조표기할핵심정보의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "강조 표기할 핵심 정보", example = " ")
    private String title;

    @Length(max = 8, message = "전송방식의 최대 길이를 초과 했습니다.")
    @NotEmpty(message = "전송방식은 필수 입력값 입니다.")
    @Schema(required = true, title = "전송방식", example = "PUSH")
    private String res_method;

//    @Schema(required = false, title = "금액(배치전송 시 사용X)", example = "1000")
//    private int price;
//
//    @Length(max = 3, message = "국제통화코드의 최대 길이를 초과 했습니다.")
//    @Schema(required = false, title = "금액 단위(배치전송 시 사용X)", example = "KRW")
//    private String currency_type;

//    @Schema(required = false, title = "버튼정보", example = " ")
    @Valid
    @Setter
    private Attachment attach;

//    @Schema(required = false, title = "바로연결 정보", example = " ")
    @Valid
    private Supplement supplement;

    @Length(max = 2, message = "알림톡유형의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "알림톡 유형", example = "AT")
    private String message_type;

    @Length(max = 1, message = "문자재처리사용여부의 최대 길이를 초과 했습니다.")
    @Schema(required = false, title = "문자 재처리 사용 여부", example = "N")
    private String use_failback;

//    @Schema(required = false, title = "문자 재처리 정보(문자재처리사용여부(useFailback) \"Y\"일 경우 필수)", example = " ")
    @Valid
    private MmsAttach mms_attach;

}
