fix input field requirement

This commit is contained in:
root
2026-06-11 15:49:31 -04:00
parent 37a6ed8a76
commit 6b97c895e0
7 changed files with 349 additions and 200 deletions
@@ -1,9 +1,10 @@
import { z } from 'zod'
import { optionalTextField, optionalTitleCaseAllField, optionalUpperField, optionalEmailField, optionalPhoneField } from '../../lib/zodValidation'
export const companySchema = z.object({
name: z.string().min(1).optional(),
email: z.string().email().optional(),
phone: z.string().optional(),
name: optionalTextField('commercialName'),
email: optionalEmailField(),
phone: optionalPhoneField(),
address: z.record(z.unknown()).optional(),
})
@@ -12,18 +13,18 @@ export const brandSchema = z.object({
tagline: z.string().optional(),
primaryColor: z.string().optional(),
accentColor: z.string().optional(),
publicEmail: z.string().email().optional(),
publicPhone: z.string().optional(),
publicEmail: optionalEmailField(),
publicPhone: optionalPhoneField(),
publicAddress: z.string().optional(),
publicCity: z.string().optional(),
publicCountry: z.string().optional(),
publicCity: optionalTextField('city'),
publicCountry: optionalTextField('country'),
websiteUrl: z.string().url().optional(),
whatsappNumber: z.string().optional(),
defaultLocale: z.string().optional(),
defaultCurrency: z.literal('MAD').optional(),
amanpayMerchantId: z.string().optional(),
amanpaySecretKey: z.string().optional(),
paypalEmail: z.string().email().optional(),
paypalEmail: optionalEmailField(),
paypalMerchantId: z.string().optional(),
isListedOnMarketplace: z.boolean().optional(),
homePageConfig: z.object({
@@ -97,8 +98,8 @@ export const brandSchema = z.object({
})
export const contractSettingsSchema = z.object({
legalName: z.string().optional(),
registrationNumber: z.string().optional(),
legalName: optionalTitleCaseAllField('legalCompanyName'),
registrationNumber: optionalUpperField('commercialRegistry'),
taxId: z.string().optional(),
terms: z.string().optional(),
fuelPolicy: z.string().optional(),
@@ -147,8 +148,8 @@ export const accountingSettingsSchema = z.object({
reportingPeriod: z.enum(['WEEKLY', 'MONTHLY', 'QUARTERLY', 'ANNUAL']).optional(),
fiscalYearStart: z.number().int().min(1).max(12).optional(),
currency: z.literal('MAD').optional(),
accountantEmail: z.string().email().optional(),
accountantName: z.string().optional(),
accountantEmail: optionalEmailField(),
accountantName: optionalTextField('name'),
autoSendReport: z.boolean().optional(),
reportFormat: z.enum(['PDF', 'CSV', 'BOTH']).optional(),
})