schema.ts (1566B)
1 import { dev } from "$app/environment"; 2 import type { IViewFarmsAddSubmission, IViewFarmsProductsAddSubmitPayload } from "$lib/types/views/farms"; 3 import { schema_geocode_result, schema_geolocation_point } from "@radroots/geo"; 4 import { form_fields, util_rxp, zf_numf_pos, zf_price } from "@radroots/utils"; 5 6 import { z } from "zod"; 7 8 export const schema_view_farms_add_submission: z.ZodSchema<IViewFarmsAddSubmission> = z.object({ 9 farm_name: z.string().regex(form_fields.farm_name.validate), 10 farm_about: z.string().optional(), 11 farm_website: z.string().optional(), 12 farm_location_label: z.string().optional(), 13 geolocation_point: schema_geolocation_point.optional(), 14 geocode_result: schema_geocode_result.optional(), 15 }); 16 17 export const schema_view_farms_products_add_submission: z.ZodSchema<IViewFarmsProductsAddSubmitPayload> = z.object({ 18 product: z.string().regex(form_fields.product_key.validate), 19 process: z.string().regex(form_fields.product_process.validate), 20 description: z.string().regex(form_fields.product_description.validate), 21 unit_price_amount: zf_price, 22 unit_price_currency: z.string().regex(form_fields.price_currency.validate), 23 bin_display_amount: zf_numf_pos, 24 bin_display_unit: z.string().regex(form_fields.bin_display_unit.validate), 25 bin_label: z.string().regex(form_fields.bin_label.validate), 26 photos: z.array(z.string().regex(dev ? util_rxp.url_image_upload_dev : util_rxp.url_image_upload)), 27 geolocation_point: schema_geolocation_point, 28 geocode_result: schema_geocode_result, 29 });