package kr.xit.biz.mbl.model;

import java.time.*;

import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
import com.fasterxml.jackson.databind.annotation.*;
import com.fasterxml.jackson.datatype.jsr310.deser.*;

import io.swagger.v3.oas.annotations.media.*;
import kr.xit.biz.ens.model.cmm.*;
import lombok.*;
import lombok.experimental.*;

/**
 * <pre>
 * description : 전자문서 중개자 모바일 페이지 API DTO
 *
 * packageName : kr.xit.biz.mbl.model
 * fileName    : MobilePageDTO
 * author      : limju
 * date        : 2023-08-31
 * ======================================================================
 * 변경일         변경자        변경 내용
 * ----------------------------------------------------------------------
 * 2023-08-31    limju       최초 생성
 *
 * </pre>
 */
public class MobilePageDTO {

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @SuperBuilder
    @EqualsAndHashCode(callSuper = false)
    public static class MobilePageManage extends CmmEnsRequestDTO {

        /**
         * 발송 상세 id
         */
        private String sndngDetailId;
        /**
         * 발송 구분 코드
         */
        private String sndngSeCode;
        /**
         * 모바일 페이지 내용
         */
        private String mobilePageCn;

        private String signguCode;

        private String ffnlgCode;
        private String profile;

        /**
         * 등록 일시
         */
        @JsonDeserialize(using = LocalDateDeserializer.class)
        @JsonFormat(pattern = "yyyy-MM-dd kk:mm:ss")
        private LocalDateTime registDt;
        /**
         * 등록자
         */
        private String register;
    }

    @Schema(name = "KakaoValidTokenRequest DTO", description = "카카오페이/톡 전자문서 토큰 유효성 검증 파라메터 DTO")
    @Data
    @SuperBuilder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
    public static class KakaoValidTokenRequest {
        /**
         * 카카오톡 문서 고유 ID정
         */
        private String envelopeId;
        /**
         * 카카오톡 외부 문서 ID
         */
        private String externalId;

        /**
         * 카카오페이 문서식별번호
         */
        private String document_binder_uuid;
        /**
         * 문서 식별 번호(외부 - max:40)
         */
        private String external_document_uuid;

        /**
         * 카카오톡/페이 전자문서 서버에서 생성한 일회용 토큰 : 필수
         */
        private String token;
    }
}
