package cokr.xit.ens.modules.common.ctgy.intgrnnoti.model.config;

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

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

@Getter
@ToString
@Builder
@Schema(name = "Document")
@NoArgsConstructor
@AllArgsConstructor
public class Document {

//    @Pattern(regexp = "[^a-zA-Z0-9]", message = "연계식별키는 숫자 또는 문자만 입력 가능 합니다.")
    @NotEmpty(message = "연계식별키는 필수 입력값 입니다.")
    @Length(max = 40, message = "연계식별키의 최대길이를 초과 했습니다.")
    @Schema(required = false, title = "연계식별키", example = " ")
    private String linked_uuid;

//    @Schema(required = false, title = "ci", example = " ")
//    private String ci;
//
//    @Pattern(regexp = "\\d{2}([0]\\d|[1][0-2])([0][1-9]|[1-2]\\d|[3][0-1])[1-8]\\d{6}", message = "주민등록번호 입력값의 형식이 유효하지 않습니다. 13자리 숫자로 입력하시기 바랍니다.")
//    @Schema(required = false, title = "주민등록번호", example = "8611281234567")
//    private String jid;
//
//    @Pattern(regexp = "^\\d{3}\\d{3,4}\\d{4}$", message = "휴대폰번호 입력값의 형식이 유효하지 않습니다.")
//    @Schema(required = false, title = "휴대폰번호", example = "0101231234")
//    private String mblphonNo;
//
//    @Schema(required = false, title = "카카오페이 청구서링크 정보", example = " ")
//    @Valid
//    private BillLinkInfo kkoBillLinkInfo;
//
//    @Schema(required = false, title = "템플릿 메시지 데이터", example = "{\"#{TARGET_NAME}\":\"홍길동\",\"#{CAR_NO}\":\"12더1234\",\"#{HISTORY}\":\"2022-01-01\",\"#{FEE}\":\"1000\",\"#{YYYY}\":\"2022\",\"#{MM}\":\"03\",\"#{DD}\":\"30\",\"#{BANK}\":\"기업\",\"#{ACCOUNT}\":\"311-063233-01-123\",\"#{HOMEPAGE}\":\"http://www.xit.co.kr\",\"#{REP_CALL_NO}\":\"070-4490-7404\"}")
//    private Map<String, Object> tmpltMsgData;
//
//    @Schema(required = false, title = "모바일페이지 노출 데이터", example = "{\"details\":[{\"title\":\"텍스트 타입\",\"item_type\":\"TEXT\",\"properties\":{\"use_toggle\":false},\"elements\":[\"test\",\"하하하\"]},{\"title\":\"PRE 텍스트 타입\",\"item_type\":\"PRE_TEXT\",\"properties\":{\"use_toggle\":false},\"elements\":\"가나다라마\\r\\nABCDEFGHI\\n1234567890\"},{\"title\":\"키-밸류 타입\",\"item_type\":\"KEY_VALUE\",\"properties\":{\"use_toggle\":false},\"elements\":[{\"key\":\"당월 부과 금액\",\"value\":\"200,203원\",\"level\":1},{\"key\":\"미납액\",\"value\":\"1,200원\",\"level\":1}]},{\"title\":\"테이블 타입\",\"item_type\":\"TABLE\",\"properties\":{\"use_toggle\":false,\"style\":{\"text_align\":[\"center\",\"left\",\"right\"]}},\"elements\":{\"head\":[\"항목\",\"당월금액\",\"전월대비\"],\"rows\":[[\"전기료\",\"1,000,000원\",\"+500,000\"],[\"수도료\",\"300,000원\",\"-100,000\"]]}},{\"title\":\"이미지 타입\",\"item_type\":\"IMAGE\",\"print_type\":\"이미지출력타입(공백: img태그(default), SLIDE: 슬라이드 기능 적용)\",\"properties\":{\"use_toggle\":false},\"elements\":[{\"링크 이미지\":\"http://www.xit.co.kr/....\"},{\"Base64 이미지\":\"data:image/png;base64,iVBORw0KGgoAAAAN....\"}]},{\"title\":\"링크버튼 타입\",\"item_type\":\"BUTTON\",\"link_url\":\"https://www.naver.com\"},{\"title\":\"결제버튼 타입\",\"item_type\":\"PAY_BUTTON\"}]}")
//    private Map<String, List<Map<String, Object>>> mblPageData;
//
//    @Schema(required = false, title = "카카오 내문서함(인증톡) 접수요청", example = " ")
//    @Valid
//    private DocumentConfKkoMd acptDocKkoMd;
//
//    @Schema(required = false, title = "카카오 알림톡 접수요청", example = " ")
//    @Valid
//    private DocumentConfKkoAt acptDocKkoAt;
//
//    @Schema(required = false, title = "네이버 고지서(인증톡) 접수요청", example = " ")
//    @Valid
//    private DocumentConfNvSt acptDocNvSt;


    @NotNull(message = "수신자정보는 필수 입력값 입니다.")
    @Valid
    private Receiver receiver;
    @NotNull(message = "타입별 접수데이터는 필수 입력값 입니다.")
    @Valid
    private AcptData acpt_data;
    @Valid
    private XitProperty xit_property;
}
