import { z } from 'zod' import { postStatusSchema } from './content-schema' export const adminPostInputSchema = z.object({ title: z.string().trim().min(1), slug: z.string().trim().min(1).regex(/^[a-z0-9가-힣]+(?:-[a-z0-9가-힣]+)*$/), content: z.string().default(''), excerpt: z.string().default(''), featuredImage: z.string().trim().nullable().default(null), seoTitle: z.string().trim().max(80).default(''), seoDescription: z.string().trim().max(180).default(''), canonicalUrl: z.string().trim().url().or(z.literal('')).default(''), noindex: z.boolean().default(false), status: postStatusSchema.default('draft'), publishedAt: z.string().datetime().nullable().default(null), tags: z.array(z.string().trim().min(1)).default([]) }) /** * 관리자 게시물 입력값 정리 * @param {unknown} body - 요청 본문 * @returns {import('zod').SafeParseReturnType} 검증 결과 */ export const parseAdminPostInput = (body) => adminPostInputSchema.safeParse(body)