diff --git a/src/components/admin/DesignerForm.tsx b/src/components/admin/DesignerForm.tsx index 6dfa43cc..a0cb554f 100644 --- a/src/components/admin/DesignerForm.tsx +++ b/src/components/admin/DesignerForm.tsx @@ -79,10 +79,14 @@ export function DesignerForm({ onSubmit, onCancel, initialData }: DesignerFormPr setIsSubmitting(true); try { - const formData = { + const formData = { ...data, company_type: 'designer' as const, founded_year: data.founded_year ? parseInt(String(data.founded_year)) : undefined, + banner_image_id: undefined, + banner_image_url: undefined, + card_image_id: undefined, + card_image_url: undefined, }; await onSubmit(formData); diff --git a/src/components/admin/ManufacturerForm.tsx b/src/components/admin/ManufacturerForm.tsx index a8127b51..d16fc732 100644 --- a/src/components/admin/ManufacturerForm.tsx +++ b/src/components/admin/ManufacturerForm.tsx @@ -87,6 +87,10 @@ export function ManufacturerForm({ onSubmit, onCancel, initialData }: Manufactur ...data, company_type: 'manufacturer' as const, founded_year: data.founded_year ? parseInt(String(data.founded_year)) : undefined, + banner_image_id: undefined, + banner_image_url: undefined, + card_image_id: undefined, + card_image_url: undefined, }; await onSubmit(formData); diff --git a/src/components/admin/OperatorForm.tsx b/src/components/admin/OperatorForm.tsx index ed70c33e..d29f6fb2 100644 --- a/src/components/admin/OperatorForm.tsx +++ b/src/components/admin/OperatorForm.tsx @@ -79,10 +79,14 @@ export function OperatorForm({ onSubmit, onCancel, initialData }: OperatorFormPr setIsSubmitting(true); try { - const formData = { + const formData = { ...data, company_type: 'operator' as const, founded_year: data.founded_year ? parseInt(String(data.founded_year)) : undefined, + banner_image_id: undefined, + banner_image_url: undefined, + card_image_id: undefined, + card_image_url: undefined, }; await onSubmit(formData); diff --git a/src/components/admin/PropertyOwnerForm.tsx b/src/components/admin/PropertyOwnerForm.tsx index 36398cef..83469e2e 100644 --- a/src/components/admin/PropertyOwnerForm.tsx +++ b/src/components/admin/PropertyOwnerForm.tsx @@ -79,10 +79,14 @@ export function PropertyOwnerForm({ onSubmit, onCancel, initialData }: PropertyO setIsSubmitting(true); try { - const formData = { + const formData = { ...data, company_type: 'property_owner' as const, founded_year: data.founded_year ? parseInt(String(data.founded_year)) : undefined, + banner_image_id: undefined, + banner_image_url: undefined, + card_image_id: undefined, + card_image_url: undefined, }; await onSubmit(formData); diff --git a/src/lib/entityValidationSchemas.ts b/src/lib/entityValidationSchemas.ts index 7909263d..cd756c68 100644 --- a/src/lib/entityValidationSchemas.ts +++ b/src/lib/entityValidationSchemas.ts @@ -64,10 +64,10 @@ export const parkValidationSchema = z.object({ .nullable() .or(z.literal('')) .transform(val => val || undefined), - banner_image_id: z.string().optional(), - banner_image_url: z.string().optional(), - card_image_id: z.string().optional(), - card_image_url: z.string().optional(), + banner_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + banner_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), images: imageAssignmentSchema, source_url: z.string().trim().optional().or(z.literal('')).refine((val) => { if (!val || val === '') return true; @@ -258,10 +258,10 @@ export const rideValidationSchema = z.object({ (val) => val === '' || val === null || val === undefined ? undefined : Number(val), z.number().int().min(0, 'Round trip duration must be positive').max(7200, 'Round trip duration must be less than 2 hours').optional() ), - banner_image_id: z.string().optional(), - banner_image_url: z.string().optional(), - card_image_id: z.string().optional(), - card_image_url: z.string().optional(), + banner_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + banner_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), images: imageAssignmentSchema, source_url: z.string().trim().optional().or(z.literal('')).refine((val) => { if (!val || val === '') return true; @@ -294,10 +294,10 @@ export const companyValidationSchema = z.object({ if (!val || val === '') return true; return z.string().url().safeParse(val).success; }, 'Invalid URL format'), - banner_image_id: z.string().optional(), - banner_image_url: z.string().optional(), - card_image_id: z.string().optional(), - card_image_url: z.string().optional(), + banner_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + banner_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_id: z.string().optional().or(z.literal('')).transform(val => val || undefined), + card_image_url: z.string().optional().or(z.literal('')).transform(val => val || undefined), images: imageAssignmentSchema, source_url: z.string().trim().optional().or(z.literal('')).refine((val) => { if (!val || val === '') return true; diff --git a/src/lib/submissionItemsService.ts b/src/lib/submissionItemsService.ts index ba186e5d..dedcabe5 100644 --- a/src/lib/submissionItemsService.ts +++ b/src/lib/submissionItemsService.ts @@ -61,6 +61,9 @@ export async function fetchSubmissionItems(submissionId: string): Promise