first commit
This commit is contained in:
23
lib/validations/product.ts
Normal file
23
lib/validations/product.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
export const productSchema = z.object({
|
||||
name: z.string().min(1, 'Product name is required'),
|
||||
description: z.string().optional(),
|
||||
price: z.number().positive('Price must be positive'),
|
||||
discount: z.number().min(0).max(100).default(0),
|
||||
images: z.array(z.string().url()).default([]),
|
||||
stock: z.number().int().min(0).default(0),
|
||||
categoryId: z.string().min(1, 'Category is required'),
|
||||
sku: z.string().min(1, 'SKU is required'),
|
||||
slug: z.string().min(1, 'Slug is required')
|
||||
})
|
||||
|
||||
export const categorySchema = z.object({
|
||||
name: z.string().min(1, 'Category name is required'),
|
||||
description: z.string().optional(),
|
||||
image: z.string().url().optional(),
|
||||
isActive: z.boolean().default(true)
|
||||
})
|
||||
|
||||
export type ProductInput = z.infer<typeof productSchema>
|
||||
export type CategoryInput = z.infer<typeof categorySchema>
|
||||
Reference in New Issue
Block a user