eletrotupi / tcc/ api/src/schemas/user.schema.ts468cada260c6f4e13d66b237b935fb36b05ff0f1
721 B | 23 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
});
10

11
export const UpdateUserSchema = CreateUserSchema.partial().extend({
12
  id: z.number(),
13
});
14

15
export type CreateUserInput = z.infer<typeof CreateUserSchema>;
16
export type UpdateUserInput = z.infer<typeof UpdateUserSchema>;
17

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

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