64 lines
2.0 KiB
TypeScript
64 lines
2.0 KiB
TypeScript
import { z } from "zod"
|
|
|
|
export const worktopFormSchema = z.object({
|
|
code: z.string().min(1, "Kód megadása kötelező"),
|
|
name: z.string().min(1, "Név megadása kötelező"),
|
|
description: z.string().optional(),
|
|
|
|
material: z.enum([
|
|
"laminate",
|
|
"stone",
|
|
"quartz",
|
|
"granite",
|
|
"marble",
|
|
"wood",
|
|
"solid_surface",
|
|
"stainless_steel",
|
|
"ceramic",
|
|
"composite",
|
|
]),
|
|
|
|
materialBrand: z.string().optional(),
|
|
materialSeries: z.string().optional(),
|
|
colorCode: z.string().optional(),
|
|
colorName: z.string().min(1, "Szín név kötelező"),
|
|
|
|
finish: z.enum(["matte", "glossy", "textured", "brushed", "polished"]),
|
|
texture: z.string().optional(),
|
|
|
|
pricePerMeter: z.number().min(0, "Ár nem lehet negatív"),
|
|
pricePerPiece: z.number().min(0).optional(),
|
|
currency: z.string().default("HUF"),
|
|
|
|
maxLength: z.number().min(0).default(0),
|
|
maxWidth: z.number().min(0).default(0),
|
|
weight: z.number().min(0).default(0),
|
|
|
|
inStock: z.boolean().default(true),
|
|
stockQuantity: z.number().min(0).default(0),
|
|
stockUnit: z.enum(["m²", "piece"]).default("m²"),
|
|
leadTimeDays: z.number().min(0).default(0),
|
|
|
|
isHeatResistant: z.boolean().default(false),
|
|
maxHeatTemp: z.number().optional(),
|
|
isWaterproof: z.boolean().default(false),
|
|
isStainResistant: z.boolean().default(false),
|
|
isScratchResistant: z.boolean().default(false),
|
|
|
|
requiresProfessionalInstallation: z.boolean().default(false),
|
|
installationDifficulty: z.enum(["easy", "medium", "hard"]).default("medium"),
|
|
|
|
status: z.enum(["active", "inactive", "discontinued", "coming_soon"]).default("active"),
|
|
|
|
supplierName: z.string().optional(),
|
|
supplierCode: z.string().optional(),
|
|
supplierPrice: z.number().min(0).optional(),
|
|
|
|
imageUrl: z.string().url().optional().or(z.literal("")),
|
|
thumbnailUrl: z.string().url().optional().or(z.literal("")),
|
|
colorSwatchUrl: z.string().url().optional().or(z.literal("")),
|
|
})
|
|
|
|
export type WorktopFormData = z.infer<typeof worktopFormSchema>
|
|
|