import { z } from "zod"; import type { PageableList, PageableParams } from "@/shared/model"; export interface CommentParams extends PageableParams { keywordType?: string; keyword?: string; pstNo: number; delYn?: string; } export interface Comment { cmntEvl: number; pstNo: number; cmntNo: number; cmntCn: string; wrtrNm: string; regDt: string; rgtr: string; mdfcnDt: string; mdfr: string; delYn: string; } export const commentFormSchema = z.object({ pstNo: z.number(), cmntCn: z.string(), wrtrNm: z.string().nullish(), cmntPswd: z.string(), cmntEvl: z.number().nullish(), }); export const commentUpdateFormSchema = commentFormSchema.omit({ pstNo: true, }); export type CommentList = PageableList; export type CommentFormData = z.infer; export type CommentUpdateFormData = z.infer; export interface CommentService { getComments(params: CommentParams): Promise; createComment(data: CommentFormData): Promise; updateComment( bbsId: number, pstNo: number, cmntNo: number, data: CommentUpdateFormData, ): Promise; deleteComment( bbsId: number, pstNo: number, cmntNo: number, cmntPswd: string, ): Promise; }