Files
sori.studio/server/utils/admin-navigation-input.js
2026-05-02 16:45:52 +09:00

22 lines
733 B
JavaScript

import { z } from 'zod'
export const adminNavigationItemInputSchema = z.object({
id: z.string().optional().nullable(),
label: z.string().trim().min(1),
url: z.string().trim().min(1).regex(/^(\/|https?:\/\/)/),
location: z.enum(['primary', 'footer']),
sortOrder: z.coerce.number().int().min(0).default(0),
isVisible: z.boolean().default(true)
})
export const adminNavigationInputSchema = z.object({
items: z.array(adminNavigationItemInputSchema)
})
/**
* 관리자 네비게이션 입력값 정리
* @param {unknown} body - 요청 본문
* @returns {import('zod').SafeParseReturnType<unknown, Object>} 검증 결과
*/
export const parseAdminNavigationInput = (body) => adminNavigationInputSchema.safeParse(body)