26 lines
871 B
TypeScript
26 lines
871 B
TypeScript
import { z } from 'zod';
|
|
|
|
export const loginSchema = z.object({
|
|
email: z.string().email('Invalid email address'),
|
|
password: z.string().min(8, 'Password must be at least 8 characters'),
|
|
});
|
|
|
|
export const registerTenantSchema = z.object({
|
|
tenantName: z.string().min(2, 'Tenant name must be at least 2 characters'),
|
|
slug: z
|
|
.string()
|
|
.min(2)
|
|
.max(50)
|
|
.regex(
|
|
/^[a-z0-9-]+$/,
|
|
'Slug must contain only lowercase letters, numbers, and hyphens',
|
|
),
|
|
adminEmail: z.string().email('Invalid email address'),
|
|
adminPassword: z.string().min(8, 'Password must be at least 8 characters'),
|
|
adminFirstName: z.string().min(1, 'First name is required'),
|
|
adminLastName: z.string().min(1, 'Last name is required'),
|
|
});
|
|
|
|
export type LoginInput = z.infer<typeof loginSchema>;
|
|
export type RegisterTenantInput = z.infer<typeof registerTenantSchema>;
|