eletrotupi / tcc/ api/src/schemas/user.schema.tsd056c177d3c92fbe121ee526d7bab29f7ba377eb
795 B | 26 lines Raw
1
import { z } from "zod";
2

3
export const CreateUserSchema = z.object({
4
  firstName: z.string(),
5
  lastName: z.string().optional(),
6
  email: z.string().email(),
7
  password: z.string().min(6),
8
  pushToken: z.string().optional(),
9
  acceptedTerms: z.literal(true),
10
});
11

12
export const UpdateUserSchema = CreateUserSchema.omit({ acceptedTerms: true })
13
  .partial()
14
  .extend({
15
    id: z.number(),
16
  });
17

18
export type CreateUserInput = z.infer<typeof CreateUserSchema>;
19
export type UpdateUserInput = z.infer<typeof UpdateUserSchema>;
20

21
export const UpdateUserPreferencesSchema = z.object({
22
  notificationsEnabled: z.boolean().optional(),
23
  dailyReminderTime: z.string().regex(/^\d{2}:\d{2}$/).nullable().optional(),
24
});
25

26
export type UpdateUserPreferencesInput = z.infer<typeof UpdateUserPreferencesSchema>;