eletrotupi / tcc/ api/src/schemas/mood.schema.ts107b5741e1db469cd6a48a363bcfc887a71971c2
680 B | 23 lines Raw
1
import { z } from 'zod';
2
import {
3
  BaseMoodOption,
4
  MoodComponentOption,
5
  IntensityLevel
6
} from '@prisma/client';
7

8
export const MoodComponentSchema = z.object({
9
  component: z.nativeEnum(MoodComponentOption),
10
  intensity: z.nativeEnum(IntensityLevel)
11
});
12

13
export const CreateMoodSchema = z.object({
14
  annotation: z.string().optional(),
15
  moment: z.coerce.date(),
16
  selectedMood: z.nativeEnum(BaseMoodOption),
17
  anxietyLevel: z.number().int().min(0).max(10),
18
  stressLevel: z.number().int().min(0).max(10),
19
  energyLevel: z.number().int().min(0).max(10),
20
  moodComponents: z.array(MoodComponentSchema).min(1)
21
});
22

23
export type CreateMoodInput = z.infer<typeof CreateMoodSchema>;