Files
2025-10-20 19:16:19 +03:00

38 lines
930 B
TypeScript

import { z } from "zod";
export const productModel = z.object({
id: z.number().optional(),
linkId: z.string().min(8).max(32),
title: z.string().min(1).max(64),
description: z.string().min(1),
longDescription: z.string().min(1),
price: z.coerce.number().nonnegative(),
discountPrice: z.coerce.number().nonnegative(),
createdAt: z.coerce.string().optional(),
updatedAt: z.coerce.string().optional(),
});
export type ProductModel = z.infer<typeof productModel>;
export const createProductPayload = productModel.omit({
id: true,
linkId: true,
createdAt: true,
updatedAt: true,
});
export type CreateProductPayload = z.infer<typeof createProductPayload>;
export const updateProductPayload = productModel
.omit({
linkId: true,
createdAt: true,
updatedAt: true,
})
.partial()
.extend({
id: z.number(),
});
export type UpdateProductPayload = z.infer<typeof updateProductPayload>;