@beorchid-llc/thrivo-contracts 0.5.5 → 0.7.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.
Files changed (41) hide show
  1. package/dist/admin-analytics.d.ts +488 -0
  2. package/dist/admin-analytics.d.ts.map +1 -0
  3. package/dist/admin-analytics.js +46 -0
  4. package/dist/admin-analytics.js.map +1 -0
  5. package/dist/admin-content.d.ts +92 -0
  6. package/dist/admin-content.d.ts.map +1 -0
  7. package/dist/admin-content.js +24 -0
  8. package/dist/admin-content.js.map +1 -0
  9. package/dist/admin-logs.d.ts +55 -0
  10. package/dist/admin-logs.d.ts.map +1 -0
  11. package/dist/admin-logs.js +24 -0
  12. package/dist/admin-logs.js.map +1 -0
  13. package/dist/admin-subscriptions.d.ts +40 -0
  14. package/dist/admin-subscriptions.d.ts.map +1 -0
  15. package/dist/admin-subscriptions.js +22 -0
  16. package/dist/admin-subscriptions.js.map +1 -0
  17. package/dist/admin.d.ts +75 -75
  18. package/dist/checkins.d.ts +130 -0
  19. package/dist/checkins.d.ts.map +1 -0
  20. package/dist/checkins.js +23 -0
  21. package/dist/checkins.js.map +1 -0
  22. package/dist/foods.d.ts +1986 -482
  23. package/dist/foods.d.ts.map +1 -1
  24. package/dist/foods.js +166 -10
  25. package/dist/foods.js.map +1 -1
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +6 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/metrics.d.ts +913 -0
  31. package/dist/metrics.d.ts.map +1 -1
  32. package/dist/metrics.js +124 -1
  33. package/dist/metrics.js.map +1 -1
  34. package/dist/push.d.ts +19 -0
  35. package/dist/push.d.ts.map +1 -0
  36. package/dist/push.js +12 -0
  37. package/dist/push.js.map +1 -0
  38. package/dist/settings.d.ts +52 -52
  39. package/dist/subscriptions.d.ts +46 -46
  40. package/dist/users.d.ts +32 -32
  41. package/package.json +1 -1
@@ -0,0 +1,488 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Admin analytics DTOs (promoted from the admin app's local `lib/contracts`).
4
+ * Names are `admin`-prefixed to match the rest of the admin surface and avoid
5
+ * collisions with the user-facing analytics/subscription schemas.
6
+ */
7
+ export declare const adminDashboardMetricsSchema: z.ZodObject<{
8
+ mrrCents: z.ZodNumber;
9
+ activeSubscribers: z.ZodNumber;
10
+ dau: z.ZodNumber;
11
+ mau: z.ZodNumber;
12
+ churnRate: z.ZodNumber;
13
+ subscriberGrowth: z.ZodArray<z.ZodObject<{
14
+ date: z.ZodString;
15
+ value: z.ZodNumber;
16
+ }, "strip", z.ZodTypeAny, {
17
+ value: number;
18
+ date: string;
19
+ }, {
20
+ value: number;
21
+ date: string;
22
+ }>, "many">;
23
+ }, "strip", z.ZodTypeAny, {
24
+ mrrCents: number;
25
+ activeSubscribers: number;
26
+ dau: number;
27
+ mau: number;
28
+ churnRate: number;
29
+ subscriberGrowth: {
30
+ value: number;
31
+ date: string;
32
+ }[];
33
+ }, {
34
+ mrrCents: number;
35
+ activeSubscribers: number;
36
+ dau: number;
37
+ mau: number;
38
+ churnRate: number;
39
+ subscriberGrowth: {
40
+ value: number;
41
+ date: string;
42
+ }[];
43
+ }>;
44
+ export type AdminDashboardMetrics = z.infer<typeof adminDashboardMetricsSchema>;
45
+ /** Endpoint response: `{ metrics: AdminDashboardMetrics }` (unwrapped by the API client). */
46
+ export declare const adminDashboardMetricsResponseSchema: z.ZodObject<{
47
+ metrics: z.ZodObject<{
48
+ mrrCents: z.ZodNumber;
49
+ activeSubscribers: z.ZodNumber;
50
+ dau: z.ZodNumber;
51
+ mau: z.ZodNumber;
52
+ churnRate: z.ZodNumber;
53
+ subscriberGrowth: z.ZodArray<z.ZodObject<{
54
+ date: z.ZodString;
55
+ value: z.ZodNumber;
56
+ }, "strip", z.ZodTypeAny, {
57
+ value: number;
58
+ date: string;
59
+ }, {
60
+ value: number;
61
+ date: string;
62
+ }>, "many">;
63
+ }, "strip", z.ZodTypeAny, {
64
+ mrrCents: number;
65
+ activeSubscribers: number;
66
+ dau: number;
67
+ mau: number;
68
+ churnRate: number;
69
+ subscriberGrowth: {
70
+ value: number;
71
+ date: string;
72
+ }[];
73
+ }, {
74
+ mrrCents: number;
75
+ activeSubscribers: number;
76
+ dau: number;
77
+ mau: number;
78
+ churnRate: number;
79
+ subscriberGrowth: {
80
+ value: number;
81
+ date: string;
82
+ }[];
83
+ }>;
84
+ }, "strip", z.ZodTypeAny, {
85
+ metrics: {
86
+ mrrCents: number;
87
+ activeSubscribers: number;
88
+ dau: number;
89
+ mau: number;
90
+ churnRate: number;
91
+ subscriberGrowth: {
92
+ value: number;
93
+ date: string;
94
+ }[];
95
+ };
96
+ }, {
97
+ metrics: {
98
+ mrrCents: number;
99
+ activeSubscribers: number;
100
+ dau: number;
101
+ mau: number;
102
+ churnRate: number;
103
+ subscriberGrowth: {
104
+ value: number;
105
+ date: string;
106
+ }[];
107
+ };
108
+ }>;
109
+ export type AdminDashboardMetricsResponse = z.infer<typeof adminDashboardMetricsResponseSchema>;
110
+ export declare const adminSubscriptionAnalyticsSchema: z.ZodObject<{
111
+ mrrCents: z.ZodNumber;
112
+ mrrTrend: z.ZodArray<z.ZodObject<{
113
+ date: z.ZodString;
114
+ value: z.ZodNumber;
115
+ }, "strip", z.ZodTypeAny, {
116
+ value: number;
117
+ date: string;
118
+ }, {
119
+ value: number;
120
+ date: string;
121
+ }>, "many">;
122
+ churnTrend: z.ZodArray<z.ZodObject<{
123
+ date: z.ZodString;
124
+ value: z.ZodNumber;
125
+ }, "strip", z.ZodTypeAny, {
126
+ value: number;
127
+ date: string;
128
+ }, {
129
+ value: number;
130
+ date: string;
131
+ }>, "many">;
132
+ trialStarts: z.ZodNumber;
133
+ trialConversions: z.ZodNumber;
134
+ cancellations: z.ZodNumber;
135
+ freeCount: z.ZodNumber;
136
+ premiumCount: z.ZodNumber;
137
+ upgradeTriggers: z.ZodArray<z.ZodObject<{
138
+ trigger: z.ZodString;
139
+ count: z.ZodNumber;
140
+ }, "strip", z.ZodTypeAny, {
141
+ trigger: string;
142
+ count: number;
143
+ }, {
144
+ trigger: string;
145
+ count: number;
146
+ }>, "many">;
147
+ }, "strip", z.ZodTypeAny, {
148
+ mrrCents: number;
149
+ mrrTrend: {
150
+ value: number;
151
+ date: string;
152
+ }[];
153
+ churnTrend: {
154
+ value: number;
155
+ date: string;
156
+ }[];
157
+ trialStarts: number;
158
+ trialConversions: number;
159
+ cancellations: number;
160
+ freeCount: number;
161
+ premiumCount: number;
162
+ upgradeTriggers: {
163
+ trigger: string;
164
+ count: number;
165
+ }[];
166
+ }, {
167
+ mrrCents: number;
168
+ mrrTrend: {
169
+ value: number;
170
+ date: string;
171
+ }[];
172
+ churnTrend: {
173
+ value: number;
174
+ date: string;
175
+ }[];
176
+ trialStarts: number;
177
+ trialConversions: number;
178
+ cancellations: number;
179
+ freeCount: number;
180
+ premiumCount: number;
181
+ upgradeTriggers: {
182
+ trigger: string;
183
+ count: number;
184
+ }[];
185
+ }>;
186
+ export type AdminSubscriptionAnalytics = z.infer<typeof adminSubscriptionAnalyticsSchema>;
187
+ /** Endpoint response: `{ analytics: AdminSubscriptionAnalytics }` */
188
+ export declare const adminSubscriptionAnalyticsResponseSchema: z.ZodObject<{
189
+ analytics: z.ZodObject<{
190
+ mrrCents: z.ZodNumber;
191
+ mrrTrend: z.ZodArray<z.ZodObject<{
192
+ date: z.ZodString;
193
+ value: z.ZodNumber;
194
+ }, "strip", z.ZodTypeAny, {
195
+ value: number;
196
+ date: string;
197
+ }, {
198
+ value: number;
199
+ date: string;
200
+ }>, "many">;
201
+ churnTrend: z.ZodArray<z.ZodObject<{
202
+ date: z.ZodString;
203
+ value: z.ZodNumber;
204
+ }, "strip", z.ZodTypeAny, {
205
+ value: number;
206
+ date: string;
207
+ }, {
208
+ value: number;
209
+ date: string;
210
+ }>, "many">;
211
+ trialStarts: z.ZodNumber;
212
+ trialConversions: z.ZodNumber;
213
+ cancellations: z.ZodNumber;
214
+ freeCount: z.ZodNumber;
215
+ premiumCount: z.ZodNumber;
216
+ upgradeTriggers: z.ZodArray<z.ZodObject<{
217
+ trigger: z.ZodString;
218
+ count: z.ZodNumber;
219
+ }, "strip", z.ZodTypeAny, {
220
+ trigger: string;
221
+ count: number;
222
+ }, {
223
+ trigger: string;
224
+ count: number;
225
+ }>, "many">;
226
+ }, "strip", z.ZodTypeAny, {
227
+ mrrCents: number;
228
+ mrrTrend: {
229
+ value: number;
230
+ date: string;
231
+ }[];
232
+ churnTrend: {
233
+ value: number;
234
+ date: string;
235
+ }[];
236
+ trialStarts: number;
237
+ trialConversions: number;
238
+ cancellations: number;
239
+ freeCount: number;
240
+ premiumCount: number;
241
+ upgradeTriggers: {
242
+ trigger: string;
243
+ count: number;
244
+ }[];
245
+ }, {
246
+ mrrCents: number;
247
+ mrrTrend: {
248
+ value: number;
249
+ date: string;
250
+ }[];
251
+ churnTrend: {
252
+ value: number;
253
+ date: string;
254
+ }[];
255
+ trialStarts: number;
256
+ trialConversions: number;
257
+ cancellations: number;
258
+ freeCount: number;
259
+ premiumCount: number;
260
+ upgradeTriggers: {
261
+ trigger: string;
262
+ count: number;
263
+ }[];
264
+ }>;
265
+ }, "strip", z.ZodTypeAny, {
266
+ analytics: {
267
+ mrrCents: number;
268
+ mrrTrend: {
269
+ value: number;
270
+ date: string;
271
+ }[];
272
+ churnTrend: {
273
+ value: number;
274
+ date: string;
275
+ }[];
276
+ trialStarts: number;
277
+ trialConversions: number;
278
+ cancellations: number;
279
+ freeCount: number;
280
+ premiumCount: number;
281
+ upgradeTriggers: {
282
+ trigger: string;
283
+ count: number;
284
+ }[];
285
+ };
286
+ }, {
287
+ analytics: {
288
+ mrrCents: number;
289
+ mrrTrend: {
290
+ value: number;
291
+ date: string;
292
+ }[];
293
+ churnTrend: {
294
+ value: number;
295
+ date: string;
296
+ }[];
297
+ trialStarts: number;
298
+ trialConversions: number;
299
+ cancellations: number;
300
+ freeCount: number;
301
+ premiumCount: number;
302
+ upgradeTriggers: {
303
+ trigger: string;
304
+ count: number;
305
+ }[];
306
+ };
307
+ }>;
308
+ export type AdminSubscriptionAnalyticsResponse = z.infer<typeof adminSubscriptionAnalyticsResponseSchema>;
309
+ export declare const adminEngagementAnalyticsSchema: z.ZodObject<{
310
+ onboardingFunnel: z.ZodArray<z.ZodObject<{
311
+ step: z.ZodString;
312
+ count: z.ZodNumber;
313
+ }, "strip", z.ZodTypeAny, {
314
+ count: number;
315
+ step: string;
316
+ }, {
317
+ count: number;
318
+ step: string;
319
+ }>, "many">;
320
+ topFoods: z.ZodArray<z.ZodObject<{
321
+ name: z.ZodString;
322
+ count: z.ZodNumber;
323
+ }, "strip", z.ZodTypeAny, {
324
+ count: number;
325
+ name: string;
326
+ }, {
327
+ count: number;
328
+ name: string;
329
+ }>, "many">;
330
+ averageStreakDays: z.ZodNumber;
331
+ pushOpenRate: z.ZodNumber;
332
+ retention: z.ZodArray<z.ZodObject<{
333
+ cohort: z.ZodString;
334
+ week: z.ZodNumber;
335
+ retained: z.ZodNumber;
336
+ }, "strip", z.ZodTypeAny, {
337
+ cohort: string;
338
+ week: number;
339
+ retained: number;
340
+ }, {
341
+ cohort: string;
342
+ week: number;
343
+ retained: number;
344
+ }>, "many">;
345
+ }, "strip", z.ZodTypeAny, {
346
+ onboardingFunnel: {
347
+ count: number;
348
+ step: string;
349
+ }[];
350
+ topFoods: {
351
+ count: number;
352
+ name: string;
353
+ }[];
354
+ averageStreakDays: number;
355
+ pushOpenRate: number;
356
+ retention: {
357
+ cohort: string;
358
+ week: number;
359
+ retained: number;
360
+ }[];
361
+ }, {
362
+ onboardingFunnel: {
363
+ count: number;
364
+ step: string;
365
+ }[];
366
+ topFoods: {
367
+ count: number;
368
+ name: string;
369
+ }[];
370
+ averageStreakDays: number;
371
+ pushOpenRate: number;
372
+ retention: {
373
+ cohort: string;
374
+ week: number;
375
+ retained: number;
376
+ }[];
377
+ }>;
378
+ export type AdminEngagementAnalytics = z.infer<typeof adminEngagementAnalyticsSchema>;
379
+ /** Endpoint response: `{ analytics: AdminEngagementAnalytics }` */
380
+ export declare const adminEngagementAnalyticsResponseSchema: z.ZodObject<{
381
+ analytics: z.ZodObject<{
382
+ onboardingFunnel: z.ZodArray<z.ZodObject<{
383
+ step: z.ZodString;
384
+ count: z.ZodNumber;
385
+ }, "strip", z.ZodTypeAny, {
386
+ count: number;
387
+ step: string;
388
+ }, {
389
+ count: number;
390
+ step: string;
391
+ }>, "many">;
392
+ topFoods: z.ZodArray<z.ZodObject<{
393
+ name: z.ZodString;
394
+ count: z.ZodNumber;
395
+ }, "strip", z.ZodTypeAny, {
396
+ count: number;
397
+ name: string;
398
+ }, {
399
+ count: number;
400
+ name: string;
401
+ }>, "many">;
402
+ averageStreakDays: z.ZodNumber;
403
+ pushOpenRate: z.ZodNumber;
404
+ retention: z.ZodArray<z.ZodObject<{
405
+ cohort: z.ZodString;
406
+ week: z.ZodNumber;
407
+ retained: z.ZodNumber;
408
+ }, "strip", z.ZodTypeAny, {
409
+ cohort: string;
410
+ week: number;
411
+ retained: number;
412
+ }, {
413
+ cohort: string;
414
+ week: number;
415
+ retained: number;
416
+ }>, "many">;
417
+ }, "strip", z.ZodTypeAny, {
418
+ onboardingFunnel: {
419
+ count: number;
420
+ step: string;
421
+ }[];
422
+ topFoods: {
423
+ count: number;
424
+ name: string;
425
+ }[];
426
+ averageStreakDays: number;
427
+ pushOpenRate: number;
428
+ retention: {
429
+ cohort: string;
430
+ week: number;
431
+ retained: number;
432
+ }[];
433
+ }, {
434
+ onboardingFunnel: {
435
+ count: number;
436
+ step: string;
437
+ }[];
438
+ topFoods: {
439
+ count: number;
440
+ name: string;
441
+ }[];
442
+ averageStreakDays: number;
443
+ pushOpenRate: number;
444
+ retention: {
445
+ cohort: string;
446
+ week: number;
447
+ retained: number;
448
+ }[];
449
+ }>;
450
+ }, "strip", z.ZodTypeAny, {
451
+ analytics: {
452
+ onboardingFunnel: {
453
+ count: number;
454
+ step: string;
455
+ }[];
456
+ topFoods: {
457
+ count: number;
458
+ name: string;
459
+ }[];
460
+ averageStreakDays: number;
461
+ pushOpenRate: number;
462
+ retention: {
463
+ cohort: string;
464
+ week: number;
465
+ retained: number;
466
+ }[];
467
+ };
468
+ }, {
469
+ analytics: {
470
+ onboardingFunnel: {
471
+ count: number;
472
+ step: string;
473
+ }[];
474
+ topFoods: {
475
+ count: number;
476
+ name: string;
477
+ }[];
478
+ averageStreakDays: number;
479
+ pushOpenRate: number;
480
+ retention: {
481
+ cohort: string;
482
+ week: number;
483
+ retained: number;
484
+ }[];
485
+ };
486
+ }>;
487
+ export type AdminEngagementAnalyticsResponse = z.infer<typeof adminEngagementAnalyticsResponseSchema>;
488
+ //# sourceMappingURL=admin-analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-analytics.d.ts","sourceRoot":"","sources":["../src/admin-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAChF,6FAA6F;AAC7F,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE9C,CAAC;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mCAAmC,CAAC,CAAC;AAEhG,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU3C,CAAC;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC1F,qEAAqE;AACrE,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEnD,CAAC;AACH,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,wCAAwC,CAChD,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMzC,CAAC;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AACtF,mEAAmE;AACnE,eAAO,MAAM,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjD,CAAC;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CACpD,OAAO,sCAAsC,CAC9C,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { z } from "zod";
2
+ import { timePointSchema } from "./common";
3
+ /**
4
+ * Admin analytics DTOs (promoted from the admin app's local `lib/contracts`).
5
+ * Names are `admin`-prefixed to match the rest of the admin surface and avoid
6
+ * collisions with the user-facing analytics/subscription schemas.
7
+ */
8
+ export const adminDashboardMetricsSchema = z.object({
9
+ mrrCents: z.number(),
10
+ activeSubscribers: z.number(),
11
+ dau: z.number(),
12
+ mau: z.number(),
13
+ churnRate: z.number(),
14
+ subscriberGrowth: z.array(timePointSchema),
15
+ });
16
+ /** Endpoint response: `{ metrics: AdminDashboardMetrics }` (unwrapped by the API client). */
17
+ export const adminDashboardMetricsResponseSchema = z.object({
18
+ metrics: adminDashboardMetricsSchema,
19
+ });
20
+ export const adminSubscriptionAnalyticsSchema = z.object({
21
+ mrrCents: z.number(),
22
+ mrrTrend: z.array(timePointSchema),
23
+ churnTrend: z.array(timePointSchema),
24
+ trialStarts: z.number(),
25
+ trialConversions: z.number(),
26
+ cancellations: z.number(),
27
+ freeCount: z.number(),
28
+ premiumCount: z.number(),
29
+ upgradeTriggers: z.array(z.object({ trigger: z.string(), count: z.number() })),
30
+ });
31
+ /** Endpoint response: `{ analytics: AdminSubscriptionAnalytics }` */
32
+ export const adminSubscriptionAnalyticsResponseSchema = z.object({
33
+ analytics: adminSubscriptionAnalyticsSchema,
34
+ });
35
+ export const adminEngagementAnalyticsSchema = z.object({
36
+ onboardingFunnel: z.array(z.object({ step: z.string(), count: z.number() })),
37
+ topFoods: z.array(z.object({ name: z.string(), count: z.number() })),
38
+ averageStreakDays: z.number(),
39
+ pushOpenRate: z.number(),
40
+ retention: z.array(z.object({ cohort: z.string(), week: z.number(), retained: z.number() })),
41
+ });
42
+ /** Endpoint response: `{ analytics: AdminEngagementAnalytics }` */
43
+ export const adminEngagementAnalyticsResponseSchema = z.object({
44
+ analytics: adminEngagementAnalyticsSchema,
45
+ });
46
+ //# sourceMappingURL=admin-analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-analytics.js","sourceRoot":"","sources":["../src/admin-analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;GAIG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;CAC3C,CAAC,CAAC;AAEH,6FAA6F;AAC7F,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,OAAO,EAAE,2BAA2B;CACrC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IAClC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC5B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC/E,CAAC,CAAC;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,wCAAwC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/D,SAAS,EAAE,gCAAgC;CAC5C,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5E,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACpE,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;CAC7F,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7D,SAAS,EAAE,8BAA8B;CAC1C,CAAC,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Admin content (Thrivo Tips) DTOs, promoted from the admin app's local
4
+ * `lib/contracts/content.ts`. The tip mood set mirrors the user check-in mood
5
+ * enum minus the wire-shape difference ("okay" here is the admin label).
6
+ */
7
+ export declare const ADMIN_TIP_MOODS: readonly ["great", "good", "okay", "low", "bad"];
8
+ export type AdminTipMood = (typeof ADMIN_TIP_MOODS)[number];
9
+ export declare const adminTipSchema: z.ZodObject<{
10
+ id: z.ZodString;
11
+ body: z.ZodString;
12
+ mood: z.ZodNullable<z.ZodEnum<["great", "good", "okay", "low", "bad"]>>;
13
+ isActive: z.ZodBoolean;
14
+ pinnedDate: z.ZodNullable<z.ZodString>;
15
+ updatedAt: z.ZodString;
16
+ }, "strip", z.ZodTypeAny, {
17
+ id: string;
18
+ body: string;
19
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
20
+ isActive: boolean;
21
+ pinnedDate: string | null;
22
+ updatedAt: string;
23
+ }, {
24
+ id: string;
25
+ body: string;
26
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
27
+ isActive: boolean;
28
+ pinnedDate: string | null;
29
+ updatedAt: string;
30
+ }>;
31
+ export type AdminTip = z.infer<typeof adminTipSchema>;
32
+ export declare const adminTipResponseSchema: z.ZodObject<{
33
+ tip: z.ZodObject<{
34
+ id: z.ZodString;
35
+ body: z.ZodString;
36
+ mood: z.ZodNullable<z.ZodEnum<["great", "good", "okay", "low", "bad"]>>;
37
+ isActive: z.ZodBoolean;
38
+ pinnedDate: z.ZodNullable<z.ZodString>;
39
+ updatedAt: z.ZodString;
40
+ }, "strip", z.ZodTypeAny, {
41
+ id: string;
42
+ body: string;
43
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
44
+ isActive: boolean;
45
+ pinnedDate: string | null;
46
+ updatedAt: string;
47
+ }, {
48
+ id: string;
49
+ body: string;
50
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
51
+ isActive: boolean;
52
+ pinnedDate: string | null;
53
+ updatedAt: string;
54
+ }>;
55
+ }, "strip", z.ZodTypeAny, {
56
+ tip: {
57
+ id: string;
58
+ body: string;
59
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
60
+ isActive: boolean;
61
+ pinnedDate: string | null;
62
+ updatedAt: string;
63
+ };
64
+ }, {
65
+ tip: {
66
+ id: string;
67
+ body: string;
68
+ mood: "great" | "good" | "okay" | "low" | "bad" | null;
69
+ isActive: boolean;
70
+ pinnedDate: string | null;
71
+ updatedAt: string;
72
+ };
73
+ }>;
74
+ export type AdminTipResponse = z.infer<typeof adminTipResponseSchema>;
75
+ export declare const adminUpsertTipPayloadSchema: z.ZodObject<{
76
+ body: z.ZodString;
77
+ mood: z.ZodOptional<z.ZodNullable<z.ZodEnum<["great", "good", "okay", "low", "bad"]>>>;
78
+ isActive: z.ZodOptional<z.ZodBoolean>;
79
+ pinnedDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
80
+ }, "strip", z.ZodTypeAny, {
81
+ body: string;
82
+ mood?: "great" | "good" | "okay" | "low" | "bad" | null | undefined;
83
+ isActive?: boolean | undefined;
84
+ pinnedDate?: string | null | undefined;
85
+ }, {
86
+ body: string;
87
+ mood?: "great" | "good" | "okay" | "low" | "bad" | null | undefined;
88
+ isActive?: boolean | undefined;
89
+ pinnedDate?: string | null | undefined;
90
+ }>;
91
+ export type AdminUpsertTipPayload = z.infer<typeof adminUpsertTipPayloadSchema>;
92
+ //# sourceMappingURL=admin-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-content.d.ts","sourceRoot":"","sources":["../src/admin-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,eAAe,kDAAmD,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAOzB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAoC,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EAKtC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ import { idSchema, isoDateSchema } from "./common";
3
+ /**
4
+ * Admin content (Thrivo Tips) DTOs, promoted from the admin app's local
5
+ * `lib/contracts/content.ts`. The tip mood set mirrors the user check-in mood
6
+ * enum minus the wire-shape difference ("okay" here is the admin label).
7
+ */
8
+ export const ADMIN_TIP_MOODS = ["great", "good", "okay", "low", "bad"];
9
+ export const adminTipSchema = z.object({
10
+ id: idSchema,
11
+ body: z.string(),
12
+ mood: z.enum(ADMIN_TIP_MOODS).nullable(),
13
+ isActive: z.boolean(),
14
+ pinnedDate: isoDateSchema.nullable(),
15
+ updatedAt: isoDateSchema,
16
+ });
17
+ export const adminTipResponseSchema = z.object({ tip: adminTipSchema });
18
+ export const adminUpsertTipPayloadSchema = z.object({
19
+ body: z.string().min(1),
20
+ mood: z.enum(ADMIN_TIP_MOODS).nullable().optional(),
21
+ isActive: z.boolean().optional(),
22
+ pinnedDate: z.string().nullable().optional(),
23
+ });
24
+ //# sourceMappingURL=admin-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-content.js","sourceRoot":"","sources":["../src/admin-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAGhF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;IACrB,UAAU,EAAE,aAAa,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,aAAa;CACzB,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;AAGxE,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC"}