diff --git a/apps/api/src/modules/admin/admin.schemas.ts b/apps/api/src/modules/admin/admin.schemas.ts index 1c24a94..9b577e9 100644 --- a/apps/api/src/modules/admin/admin.schemas.ts +++ b/apps/api/src/modules/admin/admin.schemas.ts @@ -1,5 +1,5 @@ import { z } from 'zod' -import type { MarketplaceHomepageContent, MarketplaceHomepageMetric, MarketplaceHomepagePillar, MarketplaceHomepageSectionType, MarketplaceHomepageStep } from '@rentaldrivego/types' +import type { MarketplaceHomepageContent, MarketplaceHomepageHowItWorksStep, MarketplaceHomepageMetric, MarketplaceHomepagePillar, MarketplaceHomepageSectionType, MarketplaceHomepageStep, MarketplaceHomepageTestimonial } from '@rentaldrivego/types' export const loginSchema = z.object({ email: z.string().email().max(255).trim().toLowerCase(), @@ -175,10 +175,12 @@ export const adminCompanyUpdateSchema = z.object({ }).optional(), }) -const marketplaceMetricSchema: z.ZodType = z.object({ value: z.string().min(1), label: z.string().min(1) }) -const marketplacePillarSchema: z.ZodType = z.object({ title: z.string().min(1), body: z.string().min(1) }) -const marketplaceStepSchema: z.ZodType = z.object({ step: z.string().min(1), title: z.string().min(1), body: z.string().min(1) }) -const marketplaceSectionSchema: z.ZodType = z.enum(['hero', 'surface', 'pillars', 'audiences', 'features', 'steps', 'closing']) +const marketplaceMetricSchema: z.ZodType = z.object({ value: z.string().min(1), label: z.string().min(1) }) +const marketplacePillarSchema: z.ZodType = z.object({ title: z.string().min(1), body: z.string().min(1) }) +const marketplaceStepSchema: z.ZodType = z.object({ step: z.string().min(1), title: z.string().min(1), body: z.string().min(1) }) +const marketplaceHowItWorksStepSchema: z.ZodType = z.object({ number: z.string().min(1), title: z.string().min(1), description: z.string().min(1) }) +const marketplaceTestimonialSchema: z.ZodType = z.object({ quote: z.string().min(1), author: z.string().min(1), role: z.string().min(1), company: z.string().optional() }) +const marketplaceSectionSchema: z.ZodType = z.enum(['hero', 'surface', 'pillars', 'audiences', 'features', 'howitworks', 'steps', 'testimonials', 'closing']) const marketplaceHomepageContentSchema: z.ZodType = z.object({ sections: z.array(marketplaceSectionSchema).min(1), @@ -191,7 +193,9 @@ const marketplaceHomepageContentSchema: z.ZodType = pillars: z.array(marketplacePillarSchema).length(3), metrics: z.array(marketplaceMetricSchema).length(3), featureLabel: z.string().min(1), features: z.array(z.string().min(1)).min(1), + howitworksKicker: z.string().min(1), howitworksTitle: z.string().min(1), howitworksSteps: z.array(marketplaceHowItWorksStepSchema).min(1), stepsTitle: z.string().min(1), steps: z.array(marketplaceStepSchema).length(3), stepLabel: z.string().min(1), + testimonialsKicker: z.string().min(1), testimonialsTitle: z.string().min(1), testimonials: z.array(marketplaceTestimonialSchema).min(1), readyKicker: z.string().min(1), readyTitle: z.string().min(1), readyBody: z.string().min(1), viewPricing: z.string().min(1), createWorkspace: z.string().min(1), })