gymmonk-schema 0.52.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,714 @@
1
+ /**
2
+ * gymmonk-schema — Diet charts
3
+ * =============================
4
+ * A weekly eating plan a gym builds from library foods and assigns to a member.
5
+ * The counterpart to `workout-plan`, and deliberately the same shape: a chart
6
+ * scoped by `centerId`, days keyed by weekday, and a single assignment ref on
7
+ * the member. Whoever has understood one understands the other.
8
+ *
9
+ * chart → days (weekday) → meals (type + time) → items (food + grams)
10
+ *
11
+ * That is the structure PT software converges on, and it is the smallest one
12
+ * that expresses what gyms actually write: a plan that differs on training days
13
+ * and rest days, five or six eating occasions rather than three, and a portion
14
+ * per food.
15
+ *
16
+ * ── Nothing nutritional is stored on a chart ────────────────────────────────
17
+ * An item stores a food ref and a quantity in grams. Every calorie and every
18
+ * macro on every response is derived by the API through `scaleNutrition` and
19
+ * `sumNutrition`. Storing totals would freeze them: correcting a food's protein
20
+ * would leave every chart built from it quoting the old figure, which is the
21
+ * exact failure the shared `displayName` column taught this codebase to avoid.
22
+ *
23
+ * @module gymmonk-schema/diet-chart
24
+ */
25
+ import { z } from 'zod';
26
+ /**
27
+ * The eating occasions a plan is written in.
28
+ *
29
+ * A fixed list rather than free text, because the member's day is RENDERED in
30
+ * this order and a typed name cannot be sorted: "Evening Snack" and "evening
31
+ * snack" would become two meals, and nothing could tell whether a pre-workout
32
+ * shake comes before or after lunch. Seven covers the three-meal plan and the
33
+ * six-meal one without the desk person inventing labels.
34
+ */
35
+ export declare const mealTypeSchema: z.ZodEnum<{
36
+ "early-morning": "early-morning";
37
+ breakfast: "breakfast";
38
+ "mid-morning": "mid-morning";
39
+ "pre-workout": "pre-workout";
40
+ lunch: "lunch";
41
+ "post-workout": "post-workout";
42
+ "evening-snack": "evening-snack";
43
+ dinner: "dinner";
44
+ }>;
45
+ export type MealType = z.infer<typeof mealTypeSchema>;
46
+ /** Render order. The enum's own order is the day's order; this makes that explicit. */
47
+ export declare const MEAL_TYPE_ORDER: readonly MealType[];
48
+ /** Display labels, defined once so the two clients cannot title-case differently. */
49
+ export declare const MEAL_TYPE_LABELS: Record<MealType, string>;
50
+ /**
51
+ * One food in a meal, as stored.
52
+ *
53
+ * `quantityGrams` is the ONLY quantity. A serving label ("2 rotis") is resolved
54
+ * to grams by the client at entry using the food's own `serving`, so the record
55
+ * holds one unambiguous number and a food whose serving weight is later
56
+ * corrected does not silently change what an existing chart prescribes.
57
+ */
58
+ export declare const dietItemInputSchema: z.ZodObject<{
59
+ foodId: z.ZodString;
60
+ quantityGrams: z.ZodNumber;
61
+ note: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
62
+ }, z.core.$strip>;
63
+ export type DietItemInput = z.infer<typeof dietItemInputSchema>;
64
+ export declare const dietMealInputSchema: z.ZodObject<{
65
+ mealType: z.ZodEnum<{
66
+ "early-morning": "early-morning";
67
+ breakfast: "breakfast";
68
+ "mid-morning": "mid-morning";
69
+ "pre-workout": "pre-workout";
70
+ lunch: "lunch";
71
+ "post-workout": "post-workout";
72
+ "evening-snack": "evening-snack";
73
+ dinner: "dinner";
74
+ }>;
75
+ timeLabel: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
76
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
77
+ foodId: z.ZodString;
78
+ quantityGrams: z.ZodNumber;
79
+ note: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
80
+ }, z.core.$strip>>>;
81
+ }, z.core.$strip>;
82
+ export type DietMealInput = z.infer<typeof dietMealInputSchema>;
83
+ export declare const dietChartDayInputSchema: z.ZodObject<{
84
+ weekday: z.ZodEnum<{
85
+ mon: "mon";
86
+ tue: "tue";
87
+ wed: "wed";
88
+ thu: "thu";
89
+ fri: "fri";
90
+ sat: "sat";
91
+ sun: "sun";
92
+ }>;
93
+ meals: z.ZodDefault<z.ZodArray<z.ZodObject<{
94
+ mealType: z.ZodEnum<{
95
+ "early-morning": "early-morning";
96
+ breakfast: "breakfast";
97
+ "mid-morning": "mid-morning";
98
+ "pre-workout": "pre-workout";
99
+ lunch: "lunch";
100
+ "post-workout": "post-workout";
101
+ "evening-snack": "evening-snack";
102
+ dinner: "dinner";
103
+ }>;
104
+ timeLabel: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
105
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
106
+ foodId: z.ZodString;
107
+ quantityGrams: z.ZodNumber;
108
+ note: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
109
+ }, z.core.$strip>>>;
110
+ }, z.core.$strip>>>;
111
+ }, z.core.$strip>;
112
+ export type DietChartDayInput = z.infer<typeof dietChartDayInputSchema>;
113
+ /** A chart item with its food summary and the nutrition FOR THIS QUANTITY. */
114
+ export declare const dietItemSchema: z.ZodObject<{
115
+ foodId: z.ZodString;
116
+ food: z.ZodObject<{
117
+ id: z.ZodString;
118
+ slug: z.ZodString;
119
+ name: z.ZodString;
120
+ category: z.ZodEnum<{
121
+ other: "other";
122
+ protein: "protein";
123
+ grains: "grains";
124
+ dairy: "dairy";
125
+ vegetables: "vegetables";
126
+ fruits: "fruits";
127
+ "fats-oils": "fats-oils";
128
+ "nuts-seeds": "nuts-seeds";
129
+ beverages: "beverages";
130
+ supplements: "supplements";
131
+ prepared: "prepared";
132
+ }>;
133
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
134
+ centerId: z.ZodNullable<z.ZodString>;
135
+ calories: z.ZodNumber;
136
+ serving: z.ZodNullable<z.ZodObject<{
137
+ label: z.ZodString;
138
+ grams: z.ZodNumber;
139
+ }, z.core.$strip>>;
140
+ }, z.core.$strip>;
141
+ quantityGrams: z.ZodNumber;
142
+ note: z.ZodNullable<z.ZodString>;
143
+ serving: z.ZodNullable<z.ZodObject<{
144
+ label: z.ZodString;
145
+ grams: z.ZodNumber;
146
+ }, z.core.$strip>>;
147
+ nutrition: z.ZodObject<{
148
+ calories: z.ZodNumber;
149
+ protein: z.ZodNumber;
150
+ carbs: z.ZodNumber;
151
+ fat: z.ZodNumber;
152
+ fibre: z.ZodNumber;
153
+ micros: z.ZodArray<z.ZodObject<{
154
+ name: z.ZodString;
155
+ amount: z.ZodNumber;
156
+ unit: z.ZodEnum<{
157
+ g: "g";
158
+ mg: "mg";
159
+ mcg: "mcg";
160
+ iu: "iu";
161
+ }>;
162
+ }, z.core.$strip>>;
163
+ }, z.core.$strip>;
164
+ }, z.core.$strip>;
165
+ export type DietItem = z.infer<typeof dietItemSchema>;
166
+ export declare const dietMealSchema: z.ZodObject<{
167
+ mealType: z.ZodEnum<{
168
+ "early-morning": "early-morning";
169
+ breakfast: "breakfast";
170
+ "mid-morning": "mid-morning";
171
+ "pre-workout": "pre-workout";
172
+ lunch: "lunch";
173
+ "post-workout": "post-workout";
174
+ "evening-snack": "evening-snack";
175
+ dinner: "dinner";
176
+ }>;
177
+ timeLabel: z.ZodNullable<z.ZodString>;
178
+ items: z.ZodArray<z.ZodObject<{
179
+ foodId: z.ZodString;
180
+ food: z.ZodObject<{
181
+ id: z.ZodString;
182
+ slug: z.ZodString;
183
+ name: z.ZodString;
184
+ category: z.ZodEnum<{
185
+ other: "other";
186
+ protein: "protein";
187
+ grains: "grains";
188
+ dairy: "dairy";
189
+ vegetables: "vegetables";
190
+ fruits: "fruits";
191
+ "fats-oils": "fats-oils";
192
+ "nuts-seeds": "nuts-seeds";
193
+ beverages: "beverages";
194
+ supplements: "supplements";
195
+ prepared: "prepared";
196
+ }>;
197
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
198
+ centerId: z.ZodNullable<z.ZodString>;
199
+ calories: z.ZodNumber;
200
+ serving: z.ZodNullable<z.ZodObject<{
201
+ label: z.ZodString;
202
+ grams: z.ZodNumber;
203
+ }, z.core.$strip>>;
204
+ }, z.core.$strip>;
205
+ quantityGrams: z.ZodNumber;
206
+ note: z.ZodNullable<z.ZodString>;
207
+ serving: z.ZodNullable<z.ZodObject<{
208
+ label: z.ZodString;
209
+ grams: z.ZodNumber;
210
+ }, z.core.$strip>>;
211
+ nutrition: z.ZodObject<{
212
+ calories: z.ZodNumber;
213
+ protein: z.ZodNumber;
214
+ carbs: z.ZodNumber;
215
+ fat: z.ZodNumber;
216
+ fibre: z.ZodNumber;
217
+ micros: z.ZodArray<z.ZodObject<{
218
+ name: z.ZodString;
219
+ amount: z.ZodNumber;
220
+ unit: z.ZodEnum<{
221
+ g: "g";
222
+ mg: "mg";
223
+ mcg: "mcg";
224
+ iu: "iu";
225
+ }>;
226
+ }, z.core.$strip>>;
227
+ }, z.core.$strip>;
228
+ }, z.core.$strip>>;
229
+ totals: z.ZodObject<{
230
+ calories: z.ZodNumber;
231
+ protein: z.ZodNumber;
232
+ carbs: z.ZodNumber;
233
+ fat: z.ZodNumber;
234
+ fibre: z.ZodNumber;
235
+ micros: z.ZodArray<z.ZodObject<{
236
+ name: z.ZodString;
237
+ amount: z.ZodNumber;
238
+ unit: z.ZodEnum<{
239
+ g: "g";
240
+ mg: "mg";
241
+ mcg: "mcg";
242
+ iu: "iu";
243
+ }>;
244
+ }, z.core.$strip>>;
245
+ }, z.core.$strip>;
246
+ }, z.core.$strip>;
247
+ export type DietMeal = z.infer<typeof dietMealSchema>;
248
+ export declare const dietChartDaySchema: z.ZodObject<{
249
+ weekday: z.ZodEnum<{
250
+ mon: "mon";
251
+ tue: "tue";
252
+ wed: "wed";
253
+ thu: "thu";
254
+ fri: "fri";
255
+ sat: "sat";
256
+ sun: "sun";
257
+ }>;
258
+ meals: z.ZodArray<z.ZodObject<{
259
+ mealType: z.ZodEnum<{
260
+ "early-morning": "early-morning";
261
+ breakfast: "breakfast";
262
+ "mid-morning": "mid-morning";
263
+ "pre-workout": "pre-workout";
264
+ lunch: "lunch";
265
+ "post-workout": "post-workout";
266
+ "evening-snack": "evening-snack";
267
+ dinner: "dinner";
268
+ }>;
269
+ timeLabel: z.ZodNullable<z.ZodString>;
270
+ items: z.ZodArray<z.ZodObject<{
271
+ foodId: z.ZodString;
272
+ food: z.ZodObject<{
273
+ id: z.ZodString;
274
+ slug: z.ZodString;
275
+ name: z.ZodString;
276
+ category: z.ZodEnum<{
277
+ other: "other";
278
+ protein: "protein";
279
+ grains: "grains";
280
+ dairy: "dairy";
281
+ vegetables: "vegetables";
282
+ fruits: "fruits";
283
+ "fats-oils": "fats-oils";
284
+ "nuts-seeds": "nuts-seeds";
285
+ beverages: "beverages";
286
+ supplements: "supplements";
287
+ prepared: "prepared";
288
+ }>;
289
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
290
+ centerId: z.ZodNullable<z.ZodString>;
291
+ calories: z.ZodNumber;
292
+ serving: z.ZodNullable<z.ZodObject<{
293
+ label: z.ZodString;
294
+ grams: z.ZodNumber;
295
+ }, z.core.$strip>>;
296
+ }, z.core.$strip>;
297
+ quantityGrams: z.ZodNumber;
298
+ note: z.ZodNullable<z.ZodString>;
299
+ serving: z.ZodNullable<z.ZodObject<{
300
+ label: z.ZodString;
301
+ grams: z.ZodNumber;
302
+ }, z.core.$strip>>;
303
+ nutrition: z.ZodObject<{
304
+ calories: z.ZodNumber;
305
+ protein: z.ZodNumber;
306
+ carbs: z.ZodNumber;
307
+ fat: z.ZodNumber;
308
+ fibre: z.ZodNumber;
309
+ micros: z.ZodArray<z.ZodObject<{
310
+ name: z.ZodString;
311
+ amount: z.ZodNumber;
312
+ unit: z.ZodEnum<{
313
+ g: "g";
314
+ mg: "mg";
315
+ mcg: "mcg";
316
+ iu: "iu";
317
+ }>;
318
+ }, z.core.$strip>>;
319
+ }, z.core.$strip>;
320
+ }, z.core.$strip>>;
321
+ totals: z.ZodObject<{
322
+ calories: z.ZodNumber;
323
+ protein: z.ZodNumber;
324
+ carbs: z.ZodNumber;
325
+ fat: z.ZodNumber;
326
+ fibre: z.ZodNumber;
327
+ micros: z.ZodArray<z.ZodObject<{
328
+ name: z.ZodString;
329
+ amount: z.ZodNumber;
330
+ unit: z.ZodEnum<{
331
+ g: "g";
332
+ mg: "mg";
333
+ mcg: "mcg";
334
+ iu: "iu";
335
+ }>;
336
+ }, z.core.$strip>>;
337
+ }, z.core.$strip>;
338
+ }, z.core.$strip>>;
339
+ totals: z.ZodObject<{
340
+ calories: z.ZodNumber;
341
+ protein: z.ZodNumber;
342
+ carbs: z.ZodNumber;
343
+ fat: z.ZodNumber;
344
+ fibre: z.ZodNumber;
345
+ micros: z.ZodArray<z.ZodObject<{
346
+ name: z.ZodString;
347
+ amount: z.ZodNumber;
348
+ unit: z.ZodEnum<{
349
+ g: "g";
350
+ mg: "mg";
351
+ mcg: "mcg";
352
+ iu: "iu";
353
+ }>;
354
+ }, z.core.$strip>>;
355
+ }, z.core.$strip>;
356
+ }, z.core.$strip>;
357
+ export type DietChartDay = z.infer<typeof dietChartDaySchema>;
358
+ export declare const dietChartSummarySchema: z.ZodObject<{
359
+ id: z.ZodString;
360
+ centerId: z.ZodNullable<z.ZodString>;
361
+ name: z.ZodString;
362
+ description: z.ZodNullable<z.ZodString>;
363
+ goals: z.ZodNullable<z.ZodString>;
364
+ tags: z.ZodArray<z.ZodString>;
365
+ targetCalories: z.ZodNullable<z.ZodNumber>;
366
+ createdAt: z.ZodISODateTime;
367
+ updatedAt: z.ZodISODateTime;
368
+ }, z.core.$strip>;
369
+ export type DietChartSummary = z.infer<typeof dietChartSummarySchema>;
370
+ export declare const dietChartSchema: z.ZodObject<{
371
+ id: z.ZodString;
372
+ centerId: z.ZodNullable<z.ZodString>;
373
+ name: z.ZodString;
374
+ description: z.ZodNullable<z.ZodString>;
375
+ goals: z.ZodNullable<z.ZodString>;
376
+ tags: z.ZodArray<z.ZodString>;
377
+ targetCalories: z.ZodNullable<z.ZodNumber>;
378
+ createdAt: z.ZodISODateTime;
379
+ updatedAt: z.ZodISODateTime;
380
+ days: z.ZodArray<z.ZodObject<{
381
+ weekday: z.ZodEnum<{
382
+ mon: "mon";
383
+ tue: "tue";
384
+ wed: "wed";
385
+ thu: "thu";
386
+ fri: "fri";
387
+ sat: "sat";
388
+ sun: "sun";
389
+ }>;
390
+ meals: z.ZodArray<z.ZodObject<{
391
+ mealType: z.ZodEnum<{
392
+ "early-morning": "early-morning";
393
+ breakfast: "breakfast";
394
+ "mid-morning": "mid-morning";
395
+ "pre-workout": "pre-workout";
396
+ lunch: "lunch";
397
+ "post-workout": "post-workout";
398
+ "evening-snack": "evening-snack";
399
+ dinner: "dinner";
400
+ }>;
401
+ timeLabel: z.ZodNullable<z.ZodString>;
402
+ items: z.ZodArray<z.ZodObject<{
403
+ foodId: z.ZodString;
404
+ food: z.ZodObject<{
405
+ id: z.ZodString;
406
+ slug: z.ZodString;
407
+ name: z.ZodString;
408
+ category: z.ZodEnum<{
409
+ other: "other";
410
+ protein: "protein";
411
+ grains: "grains";
412
+ dairy: "dairy";
413
+ vegetables: "vegetables";
414
+ fruits: "fruits";
415
+ "fats-oils": "fats-oils";
416
+ "nuts-seeds": "nuts-seeds";
417
+ beverages: "beverages";
418
+ supplements: "supplements";
419
+ prepared: "prepared";
420
+ }>;
421
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
422
+ centerId: z.ZodNullable<z.ZodString>;
423
+ calories: z.ZodNumber;
424
+ serving: z.ZodNullable<z.ZodObject<{
425
+ label: z.ZodString;
426
+ grams: z.ZodNumber;
427
+ }, z.core.$strip>>;
428
+ }, z.core.$strip>;
429
+ quantityGrams: z.ZodNumber;
430
+ note: z.ZodNullable<z.ZodString>;
431
+ serving: z.ZodNullable<z.ZodObject<{
432
+ label: z.ZodString;
433
+ grams: z.ZodNumber;
434
+ }, z.core.$strip>>;
435
+ nutrition: z.ZodObject<{
436
+ calories: z.ZodNumber;
437
+ protein: z.ZodNumber;
438
+ carbs: z.ZodNumber;
439
+ fat: z.ZodNumber;
440
+ fibre: z.ZodNumber;
441
+ micros: z.ZodArray<z.ZodObject<{
442
+ name: z.ZodString;
443
+ amount: z.ZodNumber;
444
+ unit: z.ZodEnum<{
445
+ g: "g";
446
+ mg: "mg";
447
+ mcg: "mcg";
448
+ iu: "iu";
449
+ }>;
450
+ }, z.core.$strip>>;
451
+ }, z.core.$strip>;
452
+ }, z.core.$strip>>;
453
+ totals: z.ZodObject<{
454
+ calories: z.ZodNumber;
455
+ protein: z.ZodNumber;
456
+ carbs: z.ZodNumber;
457
+ fat: z.ZodNumber;
458
+ fibre: z.ZodNumber;
459
+ micros: z.ZodArray<z.ZodObject<{
460
+ name: z.ZodString;
461
+ amount: z.ZodNumber;
462
+ unit: z.ZodEnum<{
463
+ g: "g";
464
+ mg: "mg";
465
+ mcg: "mcg";
466
+ iu: "iu";
467
+ }>;
468
+ }, z.core.$strip>>;
469
+ }, z.core.$strip>;
470
+ }, z.core.$strip>>;
471
+ totals: z.ZodObject<{
472
+ calories: z.ZodNumber;
473
+ protein: z.ZodNumber;
474
+ carbs: z.ZodNumber;
475
+ fat: z.ZodNumber;
476
+ fibre: z.ZodNumber;
477
+ micros: z.ZodArray<z.ZodObject<{
478
+ name: z.ZodString;
479
+ amount: z.ZodNumber;
480
+ unit: z.ZodEnum<{
481
+ g: "g";
482
+ mg: "mg";
483
+ mcg: "mcg";
484
+ iu: "iu";
485
+ }>;
486
+ }, z.core.$strip>>;
487
+ }, z.core.$strip>;
488
+ }, z.core.$strip>>;
489
+ }, z.core.$strip>;
490
+ export type DietChart = z.infer<typeof dietChartSchema>;
491
+ export declare const createDietChartBodySchema: z.ZodObject<{
492
+ centerId: z.ZodNullable<z.ZodString>;
493
+ name: z.ZodString;
494
+ description: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
495
+ goals: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
496
+ tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
497
+ targetCalories: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
498
+ days: z.ZodDefault<z.ZodArray<z.ZodObject<{
499
+ weekday: z.ZodEnum<{
500
+ mon: "mon";
501
+ tue: "tue";
502
+ wed: "wed";
503
+ thu: "thu";
504
+ fri: "fri";
505
+ sat: "sat";
506
+ sun: "sun";
507
+ }>;
508
+ meals: z.ZodDefault<z.ZodArray<z.ZodObject<{
509
+ mealType: z.ZodEnum<{
510
+ "early-morning": "early-morning";
511
+ breakfast: "breakfast";
512
+ "mid-morning": "mid-morning";
513
+ "pre-workout": "pre-workout";
514
+ lunch: "lunch";
515
+ "post-workout": "post-workout";
516
+ "evening-snack": "evening-snack";
517
+ dinner: "dinner";
518
+ }>;
519
+ timeLabel: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
520
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
521
+ foodId: z.ZodString;
522
+ quantityGrams: z.ZodNumber;
523
+ note: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
524
+ }, z.core.$strip>>>;
525
+ }, z.core.$strip>>>;
526
+ }, z.core.$strip>>>;
527
+ }, z.core.$strip>;
528
+ export type CreateDietChartBody = z.infer<typeof createDietChartBodySchema>;
529
+ export declare const updateDietChartBodySchema: z.ZodObject<{
530
+ name: z.ZodOptional<z.ZodString>;
531
+ description: z.ZodOptional<z.ZodPreprocess<z.ZodOptional<z.ZodString>>>;
532
+ goals: z.ZodOptional<z.ZodPreprocess<z.ZodOptional<z.ZodString>>>;
533
+ tags: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
534
+ targetCalories: z.ZodOptional<z.ZodDefault<z.ZodNullable<z.ZodNumber>>>;
535
+ days: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
536
+ weekday: z.ZodEnum<{
537
+ mon: "mon";
538
+ tue: "tue";
539
+ wed: "wed";
540
+ thu: "thu";
541
+ fri: "fri";
542
+ sat: "sat";
543
+ sun: "sun";
544
+ }>;
545
+ meals: z.ZodDefault<z.ZodArray<z.ZodObject<{
546
+ mealType: z.ZodEnum<{
547
+ "early-morning": "early-morning";
548
+ breakfast: "breakfast";
549
+ "mid-morning": "mid-morning";
550
+ "pre-workout": "pre-workout";
551
+ lunch: "lunch";
552
+ "post-workout": "post-workout";
553
+ "evening-snack": "evening-snack";
554
+ dinner: "dinner";
555
+ }>;
556
+ timeLabel: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
557
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
558
+ foodId: z.ZodString;
559
+ quantityGrams: z.ZodNumber;
560
+ note: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
561
+ }, z.core.$strip>>>;
562
+ }, z.core.$strip>>>;
563
+ }, z.core.$strip>>>>;
564
+ }, z.core.$strip>;
565
+ export type UpdateDietChartBody = z.infer<typeof updateDietChartBodySchema>;
566
+ export declare const dietChartQuerySchema: z.ZodObject<{
567
+ centerId: z.ZodOptional<z.ZodString>;
568
+ q: z.ZodPreprocess<z.ZodOptional<z.ZodString>>;
569
+ }, z.core.$strip>;
570
+ export type DietChartQuery = z.infer<typeof dietChartQuerySchema>;
571
+ /**
572
+ * Assign a chart to a member, or clear it with `null`.
573
+ *
574
+ * Nullable rather than a separate DELETE endpoint so "change this member's
575
+ * chart" and "take it away" are one operation with one permission check, which
576
+ * is how `assignedWorkoutPlanId` already behaves.
577
+ */
578
+ export declare const assignDietChartBodySchema: z.ZodObject<{
579
+ dietChartId: z.ZodNullable<z.ZodString>;
580
+ }, z.core.$strip>;
581
+ export type AssignDietChartBody = z.infer<typeof assignDietChartBodySchema>;
582
+ /**
583
+ * What the member's own Diet tab reads.
584
+ *
585
+ * `chart` is null for a member whose gym has not written them one, which is the
586
+ * ordinary state for most members most of the time and therefore not an error.
587
+ * `assignedAt` is what lets the screen say "since 3 March" rather than implying
588
+ * the plan is new.
589
+ */
590
+ export declare const myDietChartSchema: z.ZodObject<{
591
+ chart: z.ZodNullable<z.ZodObject<{
592
+ id: z.ZodString;
593
+ centerId: z.ZodNullable<z.ZodString>;
594
+ name: z.ZodString;
595
+ description: z.ZodNullable<z.ZodString>;
596
+ goals: z.ZodNullable<z.ZodString>;
597
+ tags: z.ZodArray<z.ZodString>;
598
+ targetCalories: z.ZodNullable<z.ZodNumber>;
599
+ createdAt: z.ZodISODateTime;
600
+ updatedAt: z.ZodISODateTime;
601
+ days: z.ZodArray<z.ZodObject<{
602
+ weekday: z.ZodEnum<{
603
+ mon: "mon";
604
+ tue: "tue";
605
+ wed: "wed";
606
+ thu: "thu";
607
+ fri: "fri";
608
+ sat: "sat";
609
+ sun: "sun";
610
+ }>;
611
+ meals: z.ZodArray<z.ZodObject<{
612
+ mealType: z.ZodEnum<{
613
+ "early-morning": "early-morning";
614
+ breakfast: "breakfast";
615
+ "mid-morning": "mid-morning";
616
+ "pre-workout": "pre-workout";
617
+ lunch: "lunch";
618
+ "post-workout": "post-workout";
619
+ "evening-snack": "evening-snack";
620
+ dinner: "dinner";
621
+ }>;
622
+ timeLabel: z.ZodNullable<z.ZodString>;
623
+ items: z.ZodArray<z.ZodObject<{
624
+ foodId: z.ZodString;
625
+ food: z.ZodObject<{
626
+ id: z.ZodString;
627
+ slug: z.ZodString;
628
+ name: z.ZodString;
629
+ category: z.ZodEnum<{
630
+ other: "other";
631
+ protein: "protein";
632
+ grains: "grains";
633
+ dairy: "dairy";
634
+ vegetables: "vegetables";
635
+ fruits: "fruits";
636
+ "fats-oils": "fats-oils";
637
+ "nuts-seeds": "nuts-seeds";
638
+ beverages: "beverages";
639
+ supplements: "supplements";
640
+ prepared: "prepared";
641
+ }>;
642
+ thumbnailUrl: z.ZodNullable<z.ZodString>;
643
+ centerId: z.ZodNullable<z.ZodString>;
644
+ calories: z.ZodNumber;
645
+ serving: z.ZodNullable<z.ZodObject<{
646
+ label: z.ZodString;
647
+ grams: z.ZodNumber;
648
+ }, z.core.$strip>>;
649
+ }, z.core.$strip>;
650
+ quantityGrams: z.ZodNumber;
651
+ note: z.ZodNullable<z.ZodString>;
652
+ serving: z.ZodNullable<z.ZodObject<{
653
+ label: z.ZodString;
654
+ grams: z.ZodNumber;
655
+ }, z.core.$strip>>;
656
+ nutrition: z.ZodObject<{
657
+ calories: z.ZodNumber;
658
+ protein: z.ZodNumber;
659
+ carbs: z.ZodNumber;
660
+ fat: z.ZodNumber;
661
+ fibre: z.ZodNumber;
662
+ micros: z.ZodArray<z.ZodObject<{
663
+ name: z.ZodString;
664
+ amount: z.ZodNumber;
665
+ unit: z.ZodEnum<{
666
+ g: "g";
667
+ mg: "mg";
668
+ mcg: "mcg";
669
+ iu: "iu";
670
+ }>;
671
+ }, z.core.$strip>>;
672
+ }, z.core.$strip>;
673
+ }, z.core.$strip>>;
674
+ totals: z.ZodObject<{
675
+ calories: z.ZodNumber;
676
+ protein: z.ZodNumber;
677
+ carbs: z.ZodNumber;
678
+ fat: z.ZodNumber;
679
+ fibre: z.ZodNumber;
680
+ micros: z.ZodArray<z.ZodObject<{
681
+ name: z.ZodString;
682
+ amount: z.ZodNumber;
683
+ unit: z.ZodEnum<{
684
+ g: "g";
685
+ mg: "mg";
686
+ mcg: "mcg";
687
+ iu: "iu";
688
+ }>;
689
+ }, z.core.$strip>>;
690
+ }, z.core.$strip>;
691
+ }, z.core.$strip>>;
692
+ totals: z.ZodObject<{
693
+ calories: z.ZodNumber;
694
+ protein: z.ZodNumber;
695
+ carbs: z.ZodNumber;
696
+ fat: z.ZodNumber;
697
+ fibre: z.ZodNumber;
698
+ micros: z.ZodArray<z.ZodObject<{
699
+ name: z.ZodString;
700
+ amount: z.ZodNumber;
701
+ unit: z.ZodEnum<{
702
+ g: "g";
703
+ mg: "mg";
704
+ mcg: "mcg";
705
+ iu: "iu";
706
+ }>;
707
+ }, z.core.$strip>>;
708
+ }, z.core.$strip>;
709
+ }, z.core.$strip>>;
710
+ }, z.core.$strip>>;
711
+ assignedAt: z.ZodNullable<z.ZodISODateTime>;
712
+ }, z.core.$strip>;
713
+ export type MyDietChart = z.infer<typeof myDietChartSchema>;
714
+ //# sourceMappingURL=diet-chart.d.ts.map