057d41e1c2
Build & Push / Pipeline Tests (push) Failing after 1m5s
Build & Push / Build & Push Docker Image (push) Has been skipped
Test / Type Check (all packages) (push) Failing after 52s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Carplace Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped
23 lines
1.0 KiB
TypeScript
23 lines
1.0 KiB
TypeScript
import { z } from 'zod'
|
|
import { contactPhoneField, languageSchema, localizedTextIssue, validateLocalizedText } from '../../lib/zodValidation'
|
|
|
|
export const renterUpdateSchema = z.object({
|
|
firstName: z.string().trim().max(50).transform((value) => value.normalize('NFC')).optional(),
|
|
lastName: z.string().trim().max(50).transform((value) => value.normalize('NFC')).optional(),
|
|
phone: contactPhoneField().optional(),
|
|
preferredLocale: languageSchema.optional(),
|
|
preferredCurrency: z.literal('MAD').optional(),
|
|
}).superRefine((data, ctx) => {
|
|
const language = data.preferredLocale ?? 'fr'
|
|
if (data.firstName && !validateLocalizedText(data.firstName, language, 50)) {
|
|
ctx.addIssue({ code: z.ZodIssueCode.custom, path: ['firstName'], message: localizedTextIssue('First name') })
|
|
}
|
|
if (data.lastName && !validateLocalizedText(data.lastName, language, 50)) {
|
|
ctx.addIssue({ code: z.ZodIssueCode.custom, path: ['lastName'], message: localizedTextIssue('Last name') })
|
|
}
|
|
})
|
|
|
|
export const renterFcmTokenSchema = z.object({
|
|
fcmToken: z.string(),
|
|
})
|