1- import { z } from 'zod/v4' ;
21import stringDateTransfer from '@lib/stringDateTrasnfer' ;
2+ import { Schema } from 'effect' ;
33import { GetKakaoTemplateResponse } from '../../responses/kakao/getKakaoTemplateResponse' ;
44import {
55 KakaoAlimtalkTemplateQuickReply ,
@@ -21,12 +21,12 @@ export type KakaoAlimtalkTemplateCategory = KakaoChannelCategory;
2121 */
2222export type KakaoAlimtalkTemplateMessageType = 'BA' | 'EX' | 'AD' | 'MI' ;
2323
24- export const kakaoAlimtalkTemplateMessageTypeSchema = z . enum ( [
24+ export const kakaoAlimtalkTemplateMessageTypeSchema = Schema . Literal (
2525 'BA' ,
2626 'EX' ,
2727 'AD' ,
2828 'MI' ,
29- ] ) ;
29+ ) ;
3030
3131/**
3232 * @description 카카오 알림톡 템플릿 강조 유형<br>
@@ -38,22 +38,22 @@ export type KakaoAlimtalkTemplateEmphasizeType =
3838 | 'IMAGE'
3939 | 'ITEM_LIST' ;
4040
41- export const kakaoAlimtalkTemplateEmphasizeTypeSchema = z . enum ( [
41+ export const kakaoAlimtalkTemplateEmphasizeTypeSchema = Schema . Literal (
4242 'NONE' ,
4343 'TEXT' ,
4444 'IMAGE' ,
4545 'ITEM_LIST' ,
46- ] ) ;
46+ ) ;
4747
4848/**
4949 * @description 카카오 알림톡 템플릿 그룹 유형(기본값은 Channel)
5050 */
5151export type KakaoAlimtalkTemplateAssignType = 'CHANNEL' | 'GROUP' ;
5252
53- export const kakaoAlimtalkTemplateAssignTypeSchema = z . enum ( [
53+ export const kakaoAlimtalkTemplateAssignTypeSchema = Schema . Literal (
5454 'CHANNEL' ,
5555 'GROUP' ,
56- ] ) ;
56+ ) ;
5757
5858/**
5959 * @description 카카오 알림톡 템플릿 상태<br><br>
@@ -68,12 +68,12 @@ export type KakaoAlimtalkTemplateStatus =
6868 | 'APPROVED'
6969 | 'REJECTED' ;
7070
71- export const kakaoAlimtalkTemplateStatusSchema = z . enum ( [
71+ export const kakaoAlimtalkTemplateStatusSchema = Schema . Literal (
7272 'PENDING' ,
7373 'INSPECTING' ,
7474 'APPROVED' ,
7575 'REJECTED' ,
76- ] ) ;
76+ ) ;
7777
7878/**
7979 * @description 알림톡 템플릿 댓글 타입
@@ -85,11 +85,11 @@ export type KakaoAlimtalkTemplateCommentType = {
8585 dateCreated : string ;
8686} ;
8787
88- export const kakaoAlimtalkTemplateCommentTypeSchema = z . object ( {
89- isAdmin : z . boolean ( ) ,
90- memberId : z . string ( ) ,
91- content : z . string ( ) ,
92- dateCreated : z . string ( ) ,
88+ export const kakaoAlimtalkTemplateCommentTypeSchema = Schema . Struct ( {
89+ isAdmin : Schema . Boolean ,
90+ memberId : Schema . String ,
91+ content : Schema . String ,
92+ dateCreated : Schema . String ,
9393} ) ;
9494
9595export type KakaoAlimtalkTemplateHighlightType = {
@@ -98,10 +98,10 @@ export type KakaoAlimtalkTemplateHighlightType = {
9898 imageId ?: string | null ;
9999} ;
100100
101- export const kakaoAlimtalkTemplateHighlightTypeSchema = z . object ( {
102- title : z . string ( ) . nullable ( ) . optional ( ) ,
103- description : z . string ( ) . nullable ( ) . optional ( ) ,
104- imageId : z . string ( ) . nullable ( ) . optional ( ) ,
101+ export const kakaoAlimtalkTemplateHighlightTypeSchema = Schema . Struct ( {
102+ title : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
103+ description : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
104+ imageId : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
105105} ) ;
106106
107107export type KakaoAlimtalkTemplateItemType = {
@@ -115,94 +115,53 @@ export type KakaoAlimtalkTemplateItemType = {
115115 } ;
116116} ;
117117
118- export const kakaoAlimtalkTemplateItemTypeSchema = z . object ( {
119- list : z . array (
120- z . object ( {
121- title : z . string ( ) ,
122- description : z . string ( ) ,
118+ export const kakaoAlimtalkTemplateItemTypeSchema = Schema . Struct ( {
119+ list : Schema . Array (
120+ Schema . Struct ( {
121+ title : Schema . String ,
122+ description : Schema . String ,
123123 } ) ,
124124 ) ,
125- summary : z . object ( {
126- title : z . string ( ) . nullable ( ) . optional ( ) ,
127- description : z . string ( ) . nullable ( ) . optional ( ) ,
125+ summary : Schema . Struct ( {
126+ title : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
127+ description : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
128128 } ) ,
129129} ) ;
130130
131- export const kakaoAlimtalkTemplateSchema = z . object ( {
132- name : z . string ( ) . describe ( '템플릿 제목' ) ,
133- channelId : z
134- . string ( )
135- . nullable ( )
136- . optional ( )
137- . describe ( '카카오 비즈니스 채널 ID' ) ,
138- channelGroupId : z
139- . string ( )
140- . nullable ( )
141- . optional ( )
142- . describe ( '카카오 비즈니스 채널 그룹 ID' ) ,
143- content : z . string ( ) . optional ( ) . describe ( '알림톡 템플릿 내용' ) ,
144- isHidden : z . boolean ( ) . optional ( ) . describe ( '알림톡 템플릿 숨김 여부' ) ,
145- messageType :
146- kakaoAlimtalkTemplateMessageTypeSchema . describe (
147- '알림톡 템플릿 메시지 유형' ,
148- ) ,
149- emphasizeType : kakaoAlimtalkTemplateEmphasizeTypeSchema . describe ( '강조 유형' ) ,
150- extra : z . string ( ) . nullable ( ) . optional ( ) . describe ( '부가정보' ) ,
151- ad : z . string ( ) . nullable ( ) . optional ( ) . describe ( '간단 광고 문구' ) ,
152- emphasizeTitle : z
153- . string ( )
154- . nullable ( )
155- . optional ( )
156- . describe ( '강조표기 핵심문구' ) ,
157- emphasizeSubtitle : z
158- . string ( )
159- . nullable ( )
160- . optional ( )
161- . describe ( '강조표기 보조문구' ) ,
162- securityFlag : z . boolean ( ) . describe ( 'PC 노출 여부' ) ,
163- imageId : z
164- . string ( )
165- . nullable ( )
166- . optional ( )
167- . describe ( '템플릿에 사용되는 이미지 ID' ) ,
168- assignType : kakaoAlimtalkTemplateAssignTypeSchema
169- . optional ( )
170- . describe ( '카카오 알림톡 템플릿 그룹 유형' ) ,
171- buttons : z
172- . array ( kakaoButtonSchema )
173- . optional ( )
174- . describe ( '카카오 알림톡 템플릿 버튼 목록' ) ,
175- comments : z
176- . array ( kakaoAlimtalkTemplateCommentTypeSchema )
177- . optional ( )
178- . describe ( '카카오 알림톡 템플릿 상태 현황목록' ) ,
179- commentable : z
180- . boolean ( )
181- . optional ( )
182- . describe ( '의견을 남길 수 있는 템플릿 여부' ) ,
183- quickReplies : z
184- . array ( kakaoAlimtalkTemplateQuickReplySchema )
185- . optional ( )
186- . describe ( '바로가기 연결(링크) 목록' ) ,
187- header : z . string ( ) . nullable ( ) . optional ( ) . describe ( '아이템 리스트 용 헤더' ) ,
188- highlight : kakaoAlimtalkTemplateHighlightTypeSchema
189- . optional ( )
190- . describe ( '아이템 리스트용 하이라이트 정보 유형' ) ,
191- item : kakaoAlimtalkTemplateItemTypeSchema
192- . optional ( )
193- . describe ( '아이템 리스트 유형' ) ,
194- templateId : z . string ( ) . describe ( '카카오 알림톡 템플릿 ID' ) ,
195- code : z
196- . string ( )
197- . optional ( )
198- . describe ( '긴급 검수를 위한 알림토 딜러사 측 템플릿 코드' ) ,
199- status :
200- kakaoAlimtalkTemplateStatusSchema . describe ( '카카오 알림톡 템플릿 상태' ) ,
201- dateCreated : z . date ( ) . optional ( ) . describe ( '알림톡 템플릿 생성일자' ) ,
202- dateUpdated : z . date ( ) . optional ( ) . describe ( '알림톡 템플릿 수정일자' ) ,
131+ export const kakaoAlimtalkTemplateSchema = Schema . Struct ( {
132+ name : Schema . String ,
133+ channelId : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
134+ channelGroupId : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
135+ content : Schema . optional ( Schema . String ) ,
136+ isHidden : Schema . optional ( Schema . Boolean ) ,
137+ messageType : kakaoAlimtalkTemplateMessageTypeSchema ,
138+ emphasizeType : kakaoAlimtalkTemplateEmphasizeTypeSchema ,
139+ extra : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
140+ ad : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
141+ emphasizeTitle : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
142+ emphasizeSubtitle : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
143+ securityFlag : Schema . Boolean ,
144+ imageId : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
145+ assignType : Schema . optional ( kakaoAlimtalkTemplateAssignTypeSchema ) ,
146+ buttons : Schema . optional ( Schema . Array ( kakaoButtonSchema ) ) ,
147+ comments : Schema . optional (
148+ Schema . Array ( kakaoAlimtalkTemplateCommentTypeSchema ) ,
149+ ) ,
150+ commentable : Schema . optional ( Schema . Boolean ) ,
151+ quickReplies : Schema . optional (
152+ Schema . Array ( kakaoAlimtalkTemplateQuickReplySchema ) ,
153+ ) ,
154+ header : Schema . optional ( Schema . NullOr ( Schema . String ) ) ,
155+ highlight : Schema . optional ( kakaoAlimtalkTemplateHighlightTypeSchema ) ,
156+ item : Schema . optional ( kakaoAlimtalkTemplateItemTypeSchema ) ,
157+ templateId : Schema . String ,
158+ code : Schema . optional ( Schema . String ) ,
159+ status : kakaoAlimtalkTemplateStatusSchema ,
160+ dateCreated : Schema . optional ( Schema . Date ) ,
161+ dateUpdated : Schema . optional ( Schema . Date ) ,
203162} ) ;
204163
205- export type KakaoAlimtalkTemplateSchema = z . infer <
164+ export type KakaoAlimtalkTemplateSchema = Schema . Schema . Type <
206165 typeof kakaoAlimtalkTemplateSchema
207166> ;
208167
0 commit comments