Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 3x | import { z } from 'zod';
import { VALIDATION, BILLING_SECTION } from '@/constants/setting';
// Billing form schema
export const billingSchema = z.object({
cardNumber: z
.string()
.min(1, VALIDATION.BILLING.CARD_NUMBER_REQUIRED)
.regex(
BILLING_SECTION.FIELDS.CARD_NUMBER.PATTERN,
VALIDATION.BILLING.CARD_NUMBER_INVALID
),
expiryDate: z
.string()
.min(1, VALIDATION.BILLING.EXPIRY_DATE_REQUIRED)
.regex(
BILLING_SECTION.FIELDS.EXPIRY_DATE.PATTERN,
VALIDATION.BILLING.EXPIRY_DATE_INVALID
),
cvv: z
.string()
.min(1, VALIDATION.BILLING.CVV_REQUIRED)
.regex(BILLING_SECTION.FIELDS.CVV.PATTERN, VALIDATION.BILLING.CVV_INVALID),
holderName: z
.string()
.min(1, VALIDATION.BILLING.HOLDER_NAME_REQUIRED)
.min(
BILLING_SECTION.FIELDS.HOLDER_NAME.MIN_LENGTH,
VALIDATION.BILLING.HOLDER_NAME_MIN_LENGTH
),
});
export type BillingFormData = z.infer<typeof billingSchema>;
|