schema.ts 686 B

123456789101112131415161718192021222324252627282930
  1. import { z } from 'zod'
  2. const userStatusSchema = z.union([
  3. z.literal('active'),
  4. z.literal('inactive'),
  5. z.literal('invited'),
  6. z.literal('suspended'),
  7. ])
  8. export type UserStatus = z.infer<typeof userStatusSchema>
  9. const userRoleSchema = z.union([
  10. z.literal('superadmin'),
  11. z.literal('admin'),
  12. z.literal('cashier'),
  13. z.literal('manager'),
  14. ])
  15. const _userSchema = z.object({
  16. id: z.string(),
  17. firstName: z.string(),
  18. lastName: z.string(),
  19. username: z.string(),
  20. email: z.string(),
  21. phoneNumber: z.string(),
  22. status: userStatusSchema,
  23. role: userRoleSchema,
  24. createdAt: z.coerce.date(),
  25. updatedAt: z.coerce.date(),
  26. })
  27. export type User = z.infer<typeof _userSchema>