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

import cokr.xit.ens.modules.common.code.PostSeCd;
import cokr.xit.ens.modules.common.ctgy.sys.mng.model.TmpltMngDTO;
import cokr.xit.ens.modules.kkoalimtalk.model.TmpltMngKkoAlimtalkDTO;
import cokr.xit.ens.modules.kkomydoc.model.TmpltMngKkoMydocDTO;
import cokr.xit.ens.modules.ktsigntalk.direct.model.TmpltMngKtSigntalkDTO;
import cokr.xit.ens.modules.ktsigntalk.gibis.model.TmpltMngKtGibisDTO;
import cokr.xit.ens.modules.nvsigntalk.model.TmpltMngNvSigntalkDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Data
@SuperBuilder
@NoArgsConstructor
@Schema(name = "TmpltMngIntegrationDTO")
public class TmpltMngIntgrnDTO extends TmpltMngDTO implements Serializable {

    @NotNull(message = "1회차 발송유형은 필수 입력값 입니다.")
    @Schema(required = true, title = "1회차 발송유형", example = "kkoMydoc")
    private PostSeCd try1;

    @Schema(required = false, title = "2회차 발송유형", example = "nvSigntalk")
    private PostSeCd try2;

    @Enumerated(EnumType.STRING)
    @Schema(required = false, title = "3회차 발송유형", example = "kkoAlimtalk")
    private PostSeCd try3;

    @Schema(required = false, title = "카카오 알림톡", example = " ")
    @Valid
    private TmpltMngKkoAlimtalkDTO kkoAlimtalk;

    @Schema(required = false, title = "카카오 내문서함(인증톡)", example = " ")
    @Valid
    private TmpltMngKkoMydocDTO kkoMydoc;

    @Schema(required = false, title = "네이버 고지서(인증톡)", example = " ")
    @Valid
    private TmpltMngNvSigntalkDTO nvSigntalk;

    @Schema(required = false, title = "KT 인증톡", example = " ")
    @Valid
    private TmpltMngKtSigntalkDTO ktSigntalk;

    @Schema(required = false, title = "KT 인증톡(지비스)", example = " ")
    @Valid
    private TmpltMngKtGibisDTO ktGibis;


}
