@voyant-travel/mice 0.6.0 → 0.6.2

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.
package/dist/routes.d.ts CHANGED
@@ -1,7 +1,27 @@
1
1
  /**
2
2
  * MICE program admin routes. Mounted by the deployment under `/v1/admin/mice`.
3
- * Routes stay thin: validate, call `miceService`, serialize. See RFC voyant#1489.
3
+ * Routes stay thin: validate, call the domain services, serialize. See RFC
4
+ * voyant#1489.
5
+ *
6
+ * Migrated to `@hono/zod-openapi` for the OpenAPI admin backfill (voyant#2114 —
7
+ * mice sub-batch). Request schemas reuse the exported `validation*.ts` schemas
8
+ * the handlers already parse; response row schemas are authored here from the
9
+ * Drizzle `$inferSelect` shapes (§17: `date`/timestamp columns serialize to
10
+ * ISO strings over the wire; integer fields stay numbers). The MICE list
11
+ * services return `{ data, limit, offset }` (no `total` count read), so the
12
+ * list envelope is declared locally rather than via `listResponseSchema`. The
13
+ * single-resource GET legs return the base row extended with the joined child
14
+ * collections (`inclusions`, `enrollments`, `delegates`, `invitations`/`bids`,
15
+ * `lines`/`evaluations`). Typed service-outcome → HTTP-status unions are
16
+ * declared inline per leg.
17
+ *
18
+ * Each resource is its own small `OpenAPIHono` sub-chain composed onto
19
+ * `miceAdminRoutes` via `.route("/", child)` so the `.openapi()` operations
20
+ * propagate up while keeping type-inference cost bounded (one flat chain has
21
+ * O(n²) inference cost). Within each child, static/collection paths are
22
+ * registered before dynamic `/{id}` legs.
4
23
  */
24
+ import { OpenAPIHono } from "@hono/zod-openapi";
5
25
  import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
6
26
  type Env = {
7
27
  Variables: {
@@ -9,66 +29,151 @@ type Env = {
9
29
  userId?: string;
10
30
  };
11
31
  };
12
- export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
13
- "/programs": {
14
- $get: {
15
- input: {};
32
+ /**
33
+ * Compose the per-resource sub-chains onto a single `OpenAPIHono` so the
34
+ * `.openapi()` operations propagate up through any parent registry while keeping
35
+ * type-inference cost bounded (one flat chain has O(n²) inference cost).
36
+ */
37
+ export declare const miceAdminRoutes: OpenAPIHono<Env, import("hono/types").MergeSchemaPath<{
38
+ "/bids/:id/lines": {
39
+ $put: {
40
+ input: {
41
+ param: {
42
+ id: string;
43
+ };
44
+ } & {
45
+ json: {
46
+ lines: {
47
+ requirementRef?: string | undefined;
48
+ description?: string | undefined;
49
+ quantity?: number | undefined;
50
+ unitCents?: number | undefined;
51
+ totalCents?: number | undefined;
52
+ }[];
53
+ };
54
+ };
55
+ output: {
56
+ error: string;
57
+ };
58
+ outputFormat: "json";
59
+ status: 400;
60
+ } | {
61
+ input: {
62
+ param: {
63
+ id: string;
64
+ };
65
+ } & {
66
+ json: {
67
+ lines: {
68
+ requirementRef?: string | undefined;
69
+ description?: string | undefined;
70
+ quantity?: number | undefined;
71
+ unitCents?: number | undefined;
72
+ totalCents?: number | undefined;
73
+ }[];
74
+ };
75
+ };
76
+ output: {
77
+ error: string;
78
+ };
79
+ outputFormat: "json";
80
+ status: 404;
81
+ } | {
82
+ input: {
83
+ param: {
84
+ id: string;
85
+ };
86
+ } & {
87
+ json: {
88
+ lines: {
89
+ requirementRef?: string | undefined;
90
+ description?: string | undefined;
91
+ quantity?: number | undefined;
92
+ unitCents?: number | undefined;
93
+ totalCents?: number | undefined;
94
+ }[];
95
+ };
96
+ };
16
97
  output: {
17
98
  data: {
18
- currency: string | null;
19
- metadata: {
20
- [x: string]: import("hono/utils/types").JSONValue;
21
- } | null;
22
- status: "completed" | "cancelled" | "lead" | "planning" | "contracted" | "operating";
23
- type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
24
99
  id: string;
25
- name: string;
100
+ bidId: string;
101
+ requirementRef: string | null;
102
+ description: string | null;
103
+ quantity: number;
104
+ unitCents: number | null;
105
+ totalCents: number | null;
26
106
  createdAt: string;
27
- code: string | null;
28
- updatedAt: string;
29
- organizationId: string | null;
30
- startDate: string | null;
31
- endDate: string | null;
32
- primaryContactPersonId: string | null;
33
- accountManagerId: string | null;
34
- destination: string | null;
35
- estimatedPax: number | null;
36
- confirmedPax: number | null;
37
- budgetAmountCents: number | null;
38
107
  }[];
39
- limit: number;
40
- offset: number;
41
108
  };
42
109
  outputFormat: "json";
43
- status: import("hono/utils/http-status").ContentfulStatusCode;
110
+ status: 200;
44
111
  };
45
112
  };
46
113
  } & {
47
- "/programs": {
114
+ "/bids/:id/evaluations": {
48
115
  $post: {
49
- input: {};
116
+ input: {
117
+ param: {
118
+ id: string;
119
+ };
120
+ } & {
121
+ json: {
122
+ criterion: string;
123
+ weight?: number | undefined;
124
+ score?: number | undefined;
125
+ notes?: string | undefined;
126
+ evaluatedBy?: string | undefined;
127
+ };
128
+ };
129
+ output: {
130
+ error: string;
131
+ };
132
+ outputFormat: "json";
133
+ status: 400;
134
+ } | {
135
+ input: {
136
+ param: {
137
+ id: string;
138
+ };
139
+ } & {
140
+ json: {
141
+ criterion: string;
142
+ weight?: number | undefined;
143
+ score?: number | undefined;
144
+ notes?: string | undefined;
145
+ evaluatedBy?: string | undefined;
146
+ };
147
+ };
148
+ output: {
149
+ error: string;
150
+ };
151
+ outputFormat: "json";
152
+ status: 404;
153
+ } | {
154
+ input: {
155
+ param: {
156
+ id: string;
157
+ };
158
+ } & {
159
+ json: {
160
+ criterion: string;
161
+ weight?: number | undefined;
162
+ score?: number | undefined;
163
+ notes?: string | undefined;
164
+ evaluatedBy?: string | undefined;
165
+ };
166
+ };
50
167
  output: {
51
168
  data: {
52
- currency: string | null;
53
- metadata: {
54
- [x: string]: import("hono/utils/types").JSONValue;
55
- } | null;
56
- status: "completed" | "cancelled" | "lead" | "planning" | "contracted" | "operating";
57
- type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
58
169
  id: string;
59
- name: string;
170
+ bidId: string;
171
+ criterion: string;
172
+ weight: number | null;
173
+ score: number | null;
174
+ notes: string | null;
175
+ evaluatedBy: string | null;
60
176
  createdAt: string;
61
- code: string | null;
62
- updatedAt: string;
63
- organizationId: string | null;
64
- startDate: string | null;
65
- endDate: string | null;
66
- primaryContactPersonId: string | null;
67
- accountManagerId: string | null;
68
- destination: string | null;
69
- estimatedPax: number | null;
70
- confirmedPax: number | null;
71
- budgetAmountCents: number | null;
72
177
  };
73
178
  };
74
179
  outputFormat: "json";
@@ -76,7 +181,7 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
76
181
  };
77
182
  };
78
183
  } & {
79
- "/programs/:id": {
184
+ "/bids/:id": {
80
185
  $get: {
81
186
  input: {
82
187
  param: {
@@ -96,39 +201,246 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
96
201
  };
97
202
  output: {
98
203
  data: {
204
+ id: string;
205
+ rfpId: string;
206
+ supplierId: string;
207
+ status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
208
+ totalCents: number | null;
99
209
  currency: string | null;
100
- metadata: {
210
+ proposalDoc: string | null;
211
+ validUntil: string | null;
212
+ notes: string | null;
213
+ createdAt: string;
214
+ updatedAt: string;
215
+ lines: {
216
+ id: string;
217
+ bidId: string;
218
+ requirementRef: string | null;
219
+ description: string | null;
220
+ quantity: number;
221
+ unitCents: number | null;
222
+ totalCents: number | null;
223
+ createdAt: string;
224
+ }[];
225
+ evaluations: {
226
+ id: string;
227
+ bidId: string;
228
+ criterion: string;
229
+ weight: number | null;
230
+ score: number | null;
231
+ notes: string | null;
232
+ evaluatedBy: string | null;
233
+ createdAt: string;
234
+ }[];
235
+ };
236
+ };
237
+ outputFormat: "json";
238
+ status: 200;
239
+ };
240
+ };
241
+ } & {
242
+ "/bids/:id": {
243
+ $patch: {
244
+ input: {
245
+ param: {
246
+ id: string;
247
+ };
248
+ } & {
249
+ json: {
250
+ status?: "draft" | "submitted" | "under_review" | undefined;
251
+ currency?: string | undefined;
252
+ notes?: string | undefined;
253
+ totalCents?: number | undefined;
254
+ proposalDoc?: string | undefined;
255
+ validUntil?: string | undefined;
256
+ };
257
+ };
258
+ output: {
259
+ error: string;
260
+ };
261
+ outputFormat: "json";
262
+ status: 400;
263
+ } | {
264
+ input: {
265
+ param: {
266
+ id: string;
267
+ };
268
+ } & {
269
+ json: {
270
+ status?: "draft" | "submitted" | "under_review" | undefined;
271
+ currency?: string | undefined;
272
+ notes?: string | undefined;
273
+ totalCents?: number | undefined;
274
+ proposalDoc?: string | undefined;
275
+ validUntil?: string | undefined;
276
+ };
277
+ };
278
+ output: {
279
+ error: string;
280
+ };
281
+ outputFormat: "json";
282
+ status: 404;
283
+ } | {
284
+ input: {
285
+ param: {
286
+ id: string;
287
+ };
288
+ } & {
289
+ json: {
290
+ status?: "draft" | "submitted" | "under_review" | undefined;
291
+ currency?: string | undefined;
292
+ notes?: string | undefined;
293
+ totalCents?: number | undefined;
294
+ proposalDoc?: string | undefined;
295
+ validUntil?: string | undefined;
296
+ };
297
+ };
298
+ output: {
299
+ data: {
300
+ id: string;
301
+ rfpId: string;
302
+ supplierId: string;
303
+ status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
304
+ totalCents: number | null;
305
+ currency: string | null;
306
+ proposalDoc: string | null;
307
+ validUntil: string | null;
308
+ notes: string | null;
309
+ createdAt: string;
310
+ updatedAt: string;
311
+ };
312
+ };
313
+ outputFormat: "json";
314
+ status: 200;
315
+ };
316
+ };
317
+ }, "/"> & import("hono/types").MergeSchemaPath<{
318
+ "/rfps": {
319
+ $get: {
320
+ input: {
321
+ query: {
322
+ programId: string;
323
+ status?: "cancelled" | "draft" | "issued" | "closed" | "awarded" | undefined;
324
+ limit?: unknown;
325
+ offset?: unknown;
326
+ };
327
+ };
328
+ output: {
329
+ data: {
330
+ id: string;
331
+ programId: string;
332
+ title: string;
333
+ requirements: {
101
334
  [x: string]: import("hono/utils/types").JSONValue;
102
335
  } | null;
103
- status: "completed" | "cancelled" | "lead" | "planning" | "contracted" | "operating";
104
- type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
336
+ status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
337
+ issuedAt: string | null;
338
+ dueAt: string | null;
339
+ notes: string | null;
340
+ createdAt: string;
341
+ updatedAt: string;
342
+ }[];
343
+ limit: number;
344
+ offset: number;
345
+ };
346
+ outputFormat: "json";
347
+ status: 200;
348
+ };
349
+ };
350
+ } & {
351
+ "/rfps": {
352
+ $post: {
353
+ input: {
354
+ json: {
355
+ programId: string;
356
+ title: string;
357
+ requirements?: Record<string, unknown> | undefined;
358
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
359
+ issuedAt?: string | undefined;
360
+ dueAt?: string | undefined;
361
+ notes?: string | undefined;
362
+ };
363
+ };
364
+ output: {
365
+ error: string;
366
+ };
367
+ outputFormat: "json";
368
+ status: 400;
369
+ } | {
370
+ input: {
371
+ json: {
372
+ programId: string;
373
+ title: string;
374
+ requirements?: Record<string, unknown> | undefined;
375
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
376
+ issuedAt?: string | undefined;
377
+ dueAt?: string | undefined;
378
+ notes?: string | undefined;
379
+ };
380
+ };
381
+ output: {
382
+ error: string;
383
+ };
384
+ outputFormat: "json";
385
+ status: 404;
386
+ } | {
387
+ input: {
388
+ json: {
389
+ programId: string;
390
+ title: string;
391
+ requirements?: Record<string, unknown> | undefined;
392
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
393
+ issuedAt?: string | undefined;
394
+ dueAt?: string | undefined;
395
+ notes?: string | undefined;
396
+ };
397
+ };
398
+ output: {
399
+ data: {
105
400
  id: string;
106
- name: string;
401
+ programId: string;
402
+ title: string;
403
+ requirements: {
404
+ [x: string]: import("hono/utils/types").JSONValue;
405
+ } | null;
406
+ status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
407
+ issuedAt: string | null;
408
+ dueAt: string | null;
409
+ notes: string | null;
107
410
  createdAt: string;
108
- code: string | null;
109
411
  updatedAt: string;
110
- organizationId: string | null;
111
- startDate: string | null;
112
- endDate: string | null;
113
- primaryContactPersonId: string | null;
114
- accountManagerId: string | null;
115
- destination: string | null;
116
- estimatedPax: number | null;
117
- confirmedPax: number | null;
118
- budgetAmountCents: number | null;
119
412
  };
120
413
  };
121
414
  outputFormat: "json";
122
- status: import("hono/utils/http-status").ContentfulStatusCode;
415
+ status: 201;
123
416
  };
124
417
  };
125
418
  } & {
126
- "/programs/:id/cost-sheet": {
127
- $get: {
419
+ "/rfps/:id/invitations": {
420
+ $post: {
421
+ input: {
422
+ param: {
423
+ id: string;
424
+ };
425
+ } & {
426
+ json: {
427
+ supplierId: string;
428
+ };
429
+ };
430
+ output: {
431
+ error: string;
432
+ };
433
+ outputFormat: "json";
434
+ status: 400;
435
+ } | {
128
436
  input: {
129
437
  param: {
130
438
  id: string;
131
439
  };
440
+ } & {
441
+ json: {
442
+ supplierId: string;
443
+ };
132
444
  };
133
445
  output: {
134
446
  error: string;
@@ -140,207 +452,221 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
140
452
  param: {
141
453
  id: string;
142
454
  };
455
+ } & {
456
+ json: {
457
+ supplierId: string;
458
+ };
459
+ };
460
+ output: {
461
+ data: {
462
+ id: string;
463
+ rfpId: string;
464
+ supplierId: string;
465
+ status: "invited" | "viewed" | "declined" | "responded";
466
+ createdAt: string;
467
+ updatedAt: string;
468
+ };
469
+ };
470
+ outputFormat: "json";
471
+ status: 200;
472
+ } | {
473
+ input: {
474
+ param: {
475
+ id: string;
476
+ };
477
+ } & {
478
+ json: {
479
+ supplierId: string;
480
+ };
143
481
  };
144
482
  output: {
145
483
  data: {
146
- programId: string;
147
- mixedCurrency: boolean;
148
- byCurrency: {
149
- currency: string;
150
- roomBlocks: {
151
- contractedCostCents: number;
152
- pickedCostCents: number;
153
- pickedSellCents: number;
154
- };
155
- spaceBlocks: {
156
- contractedCostCents: number;
157
- pickedCostCents: number;
158
- pickedSellCents: number;
159
- };
160
- sessionInclusionsCostCents: number;
161
- costCents: number;
162
- sellCents: number;
163
- marginCents: number;
164
- marginPct: number | null;
165
- }[];
484
+ id: string;
485
+ rfpId: string;
486
+ supplierId: string;
487
+ status: "invited" | "viewed" | "declined" | "responded";
488
+ createdAt: string;
489
+ updatedAt: string;
166
490
  };
167
491
  };
168
492
  outputFormat: "json";
169
- status: import("hono/utils/http-status").ContentfulStatusCode;
493
+ status: 201;
170
494
  };
171
495
  };
172
496
  } & {
173
- "/programs/:id": {
174
- $patch: {
497
+ "/rfps/:id/bids": {
498
+ $post: {
175
499
  input: {
176
500
  param: {
177
501
  id: string;
178
502
  };
503
+ } & {
504
+ json: {
505
+ supplierId: string;
506
+ status?: "draft" | "submitted" | "under_review" | undefined;
507
+ totalCents?: number | undefined;
508
+ currency?: string | undefined;
509
+ proposalDoc?: string | undefined;
510
+ validUntil?: string | undefined;
511
+ notes?: string | undefined;
512
+ };
179
513
  };
180
514
  output: {
181
515
  error: string;
182
516
  };
183
517
  outputFormat: "json";
184
- status: 404;
518
+ status: 400;
185
519
  } | {
186
520
  input: {
187
521
  param: {
188
522
  id: string;
189
523
  };
524
+ } & {
525
+ json: {
526
+ supplierId: string;
527
+ status?: "draft" | "submitted" | "under_review" | undefined;
528
+ totalCents?: number | undefined;
529
+ currency?: string | undefined;
530
+ proposalDoc?: string | undefined;
531
+ validUntil?: string | undefined;
532
+ notes?: string | undefined;
533
+ };
190
534
  };
191
535
  output: {
192
- data: {
193
- currency: string | null;
194
- metadata: {
195
- [x: string]: import("hono/utils/types").JSONValue;
196
- } | null;
197
- status: "completed" | "cancelled" | "lead" | "planning" | "contracted" | "operating";
198
- type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
536
+ error: string;
537
+ };
538
+ outputFormat: "json";
539
+ status: 404;
540
+ } | {
541
+ input: {
542
+ param: {
199
543
  id: string;
200
- name: string;
201
- createdAt: string;
202
- code: string | null;
203
- updatedAt: string;
204
- organizationId: string | null;
205
- startDate: string | null;
206
- endDate: string | null;
207
- primaryContactPersonId: string | null;
208
- accountManagerId: string | null;
209
- destination: string | null;
210
- estimatedPax: number | null;
211
- confirmedPax: number | null;
212
- budgetAmountCents: number | null;
544
+ };
545
+ } & {
546
+ json: {
547
+ supplierId: string;
548
+ status?: "draft" | "submitted" | "under_review" | undefined;
549
+ totalCents?: number | undefined;
550
+ currency?: string | undefined;
551
+ proposalDoc?: string | undefined;
552
+ validUntil?: string | undefined;
553
+ notes?: string | undefined;
213
554
  };
214
555
  };
215
- outputFormat: "json";
216
- status: import("hono/utils/http-status").ContentfulStatusCode;
217
- };
218
- };
219
- } & {
220
- "/sessions": {
221
- $get: {
222
- input: {};
223
556
  output: {
224
557
  data: {
225
- metadata: {
226
- [x: string]: import("hono/utils/types").JSONValue;
227
- } | null;
228
558
  id: string;
559
+ rfpId: string;
560
+ supplierId: string;
561
+ status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
562
+ totalCents: number | null;
563
+ currency: string | null;
564
+ proposalDoc: string | null;
565
+ validUntil: string | null;
566
+ notes: string | null;
229
567
  createdAt: string;
230
568
  updatedAt: string;
231
- notes: string | null;
232
- capacity: number | null;
233
- programId: string;
234
- title: string;
235
- functionSpaceId: string | null;
236
- sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
237
- dayDate: string | null;
238
- startsAt: string | null;
239
- endsAt: string | null;
240
- track: string | null;
241
- requiresRegistration: boolean;
242
- }[];
243
- limit: number;
244
- offset: number;
569
+ };
245
570
  };
246
571
  outputFormat: "json";
247
- status: import("hono/utils/http-status").ContentfulStatusCode;
572
+ status: 201;
248
573
  };
249
574
  };
250
575
  } & {
251
- "/sessions": {
576
+ "/rfps/:id/award": {
252
577
  $post: {
253
- input: {};
578
+ input: {
579
+ param: {
580
+ id: string;
581
+ };
582
+ } & {
583
+ json: {
584
+ bidId: string;
585
+ };
586
+ };
254
587
  output: {
255
588
  error: string;
256
589
  };
257
590
  outputFormat: "json";
258
- status: 404;
591
+ status: 400;
259
592
  } | {
260
- input: {};
261
- output: {
262
- data: {
263
- metadata: {
264
- [x: string]: import("hono/utils/types").JSONValue;
265
- } | null;
593
+ input: {
594
+ param: {
266
595
  id: string;
267
- createdAt: string;
268
- updatedAt: string;
269
- notes: string | null;
270
- capacity: number | null;
271
- programId: string;
272
- title: string;
273
- functionSpaceId: string | null;
274
- sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
275
- dayDate: string | null;
276
- startsAt: string | null;
277
- endsAt: string | null;
278
- track: string | null;
279
- requiresRegistration: boolean;
280
596
  };
597
+ } & {
598
+ json: {
599
+ bidId: string;
600
+ };
601
+ };
602
+ output: {
603
+ error: string;
281
604
  };
282
605
  outputFormat: "json";
283
- status: 201;
284
- };
285
- };
286
- } & {
287
- "/sessions/:id": {
288
- $get: {
606
+ status: 404;
607
+ } | {
289
608
  input: {
290
609
  param: {
291
610
  id: string;
292
611
  };
612
+ } & {
613
+ json: {
614
+ bidId: string;
615
+ };
293
616
  };
294
617
  output: {
295
618
  error: string;
296
619
  };
297
620
  outputFormat: "json";
298
- status: 404;
621
+ status: 409;
299
622
  } | {
300
623
  input: {
301
624
  param: {
302
625
  id: string;
303
626
  };
627
+ } & {
628
+ json: {
629
+ bidId: string;
630
+ };
304
631
  };
305
632
  output: {
306
633
  data: {
307
- metadata: {
308
- [x: string]: import("hono/utils/types").JSONValue;
309
- } | null;
310
- id: string;
311
- createdAt: string;
312
- updatedAt: string;
313
- notes: string | null;
314
- capacity: number | null;
315
- programId: string;
316
- title: string;
317
- functionSpaceId: string | null;
318
- sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
319
- dayDate: string | null;
320
- startsAt: string | null;
321
- endsAt: string | null;
322
- track: string | null;
323
- requiresRegistration: boolean;
324
- inclusions: {
325
- currency: string | null;
634
+ rfp: {
326
635
  id: string;
636
+ programId: string;
637
+ title: string;
638
+ requirements: {
639
+ [x: string]: import("hono/utils/types").JSONValue;
640
+ } | null;
641
+ status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
642
+ issuedAt: string | null;
643
+ dueAt: string | null;
644
+ notes: string | null;
327
645
  createdAt: string;
328
- description: string | null;
329
646
  updatedAt: string;
330
- sessionId: string;
331
- kind: "other" | "fnb" | "av" | "materials" | "signage";
332
- quantity: number;
333
- costAmountCents: number | null;
334
- }[];
647
+ };
648
+ bid: {
649
+ id: string;
650
+ rfpId: string;
651
+ supplierId: string;
652
+ status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
653
+ totalCents: number | null;
654
+ currency: string | null;
655
+ proposalDoc: string | null;
656
+ validUntil: string | null;
657
+ notes: string | null;
658
+ createdAt: string;
659
+ updatedAt: string;
660
+ };
335
661
  };
336
662
  };
337
663
  outputFormat: "json";
338
- status: import("hono/utils/http-status").ContentfulStatusCode;
664
+ status: 200;
339
665
  };
340
666
  };
341
667
  } & {
342
- "/sessions/:id": {
343
- $patch: {
668
+ "/rfps/:id": {
669
+ $get: {
344
670
  input: {
345
671
  param: {
346
672
  id: string;
@@ -359,61 +685,80 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
359
685
  };
360
686
  output: {
361
687
  data: {
362
- metadata: {
688
+ id: string;
689
+ programId: string;
690
+ title: string;
691
+ requirements: {
363
692
  [x: string]: import("hono/utils/types").JSONValue;
364
693
  } | null;
365
- id: string;
694
+ status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
695
+ issuedAt: string | null;
696
+ dueAt: string | null;
697
+ notes: string | null;
366
698
  createdAt: string;
367
699
  updatedAt: string;
368
- notes: string | null;
369
- capacity: number | null;
370
- programId: string;
371
- title: string;
372
- functionSpaceId: string | null;
373
- sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
374
- dayDate: string | null;
375
- startsAt: string | null;
376
- endsAt: string | null;
377
- track: string | null;
378
- requiresRegistration: boolean;
700
+ invitations: {
701
+ id: string;
702
+ rfpId: string;
703
+ supplierId: string;
704
+ status: "invited" | "viewed" | "declined" | "responded";
705
+ createdAt: string;
706
+ updatedAt: string;
707
+ }[];
708
+ bids: {
709
+ id: string;
710
+ rfpId: string;
711
+ supplierId: string;
712
+ status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
713
+ totalCents: number | null;
714
+ currency: string | null;
715
+ proposalDoc: string | null;
716
+ validUntil: string | null;
717
+ notes: string | null;
718
+ createdAt: string;
719
+ updatedAt: string;
720
+ }[];
379
721
  };
380
722
  };
381
723
  outputFormat: "json";
382
- status: import("hono/utils/http-status").ContentfulStatusCode;
724
+ status: 200;
383
725
  };
384
726
  };
385
727
  } & {
386
- "/sessions/:id": {
387
- $delete: {
728
+ "/rfps/:id": {
729
+ $patch: {
388
730
  input: {
389
731
  param: {
390
732
  id: string;
391
733
  };
734
+ } & {
735
+ json: {
736
+ title?: string | undefined;
737
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
738
+ notes?: string | undefined;
739
+ requirements?: Record<string, unknown> | undefined;
740
+ issuedAt?: string | undefined;
741
+ dueAt?: string | undefined;
742
+ };
392
743
  };
393
744
  output: {
394
745
  error: string;
395
746
  };
396
747
  outputFormat: "json";
397
- status: 404;
748
+ status: 400;
398
749
  } | {
399
750
  input: {
400
751
  param: {
401
752
  id: string;
402
753
  };
403
- };
404
- output: {
405
- success: true;
406
- };
407
- outputFormat: "json";
408
- status: import("hono/utils/http-status").ContentfulStatusCode;
409
- };
410
- };
411
- } & {
412
- "/sessions/:id/inclusions": {
413
- $put: {
414
- input: {
415
- param: {
416
- id: string;
754
+ } & {
755
+ json: {
756
+ title?: string | undefined;
757
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
758
+ notes?: string | undefined;
759
+ requirements?: Record<string, unknown> | undefined;
760
+ issuedAt?: string | undefined;
761
+ dueAt?: string | undefined;
417
762
  };
418
763
  };
419
764
  output: {
@@ -426,79 +771,137 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
426
771
  param: {
427
772
  id: string;
428
773
  };
774
+ } & {
775
+ json: {
776
+ title?: string | undefined;
777
+ status?: "cancelled" | "draft" | "issued" | "closed" | undefined;
778
+ notes?: string | undefined;
779
+ requirements?: Record<string, unknown> | undefined;
780
+ issuedAt?: string | undefined;
781
+ dueAt?: string | undefined;
782
+ };
429
783
  };
430
784
  output: {
431
785
  data: {
432
- currency: string | null;
433
786
  id: string;
787
+ programId: string;
788
+ title: string;
789
+ requirements: {
790
+ [x: string]: import("hono/utils/types").JSONValue;
791
+ } | null;
792
+ status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
793
+ issuedAt: string | null;
794
+ dueAt: string | null;
795
+ notes: string | null;
434
796
  createdAt: string;
435
- description: string | null;
436
797
  updatedAt: string;
437
- sessionId: string;
438
- kind: "other" | "fnb" | "av" | "materials" | "signage";
439
- quantity: number;
440
- costAmountCents: number | null;
441
- }[];
798
+ };
442
799
  };
443
800
  outputFormat: "json";
444
- status: import("hono/utils/http-status").ContentfulStatusCode;
801
+ status: 200;
445
802
  };
446
803
  };
447
- } & {
448
- "/delegates": {
804
+ }, "/"> & import("hono/types").MergeSchemaPath<{
805
+ "/rooming-assignments": {
449
806
  $get: {
450
- input: {};
807
+ input: {
808
+ query: {
809
+ programId: string;
810
+ limit?: unknown;
811
+ offset?: unknown;
812
+ };
813
+ };
451
814
  output: {
452
815
  data: {
816
+ id: string;
817
+ programId: string;
818
+ roomBlockId: string | null;
819
+ roomTypeId: string | null;
820
+ bedConfig: string | null;
821
+ sharingGroupId: string | null;
822
+ checkIn: string | null;
823
+ checkOut: string | null;
824
+ specialRequests: string | null;
453
825
  metadata: {
454
826
  [x: string]: import("hono/utils/types").JSONValue;
455
827
  } | null;
456
- status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
457
- id: string;
458
828
  createdAt: string;
459
829
  updatedAt: string;
460
- role: "staff" | "attendee" | "speaker" | "sponsor" | "vip" | "exhibitor" | "organizer";
461
- notes: string | null;
462
- bookingId: string | null;
463
- programId: string;
464
- personId: string | null;
465
- arrivalAt: string | null;
466
- departureAt: string | null;
467
830
  }[];
468
831
  limit: number;
469
832
  offset: number;
470
833
  };
471
834
  outputFormat: "json";
472
- status: import("hono/utils/http-status").ContentfulStatusCode;
835
+ status: 200;
473
836
  };
474
837
  };
475
838
  } & {
476
- "/delegates": {
839
+ "/rooming-assignments": {
477
840
  $post: {
478
- input: {};
841
+ input: {
842
+ json: {
843
+ programId: string;
844
+ roomBlockId?: string | undefined;
845
+ roomTypeId?: string | undefined;
846
+ bedConfig?: string | undefined;
847
+ sharingGroupId?: string | undefined;
848
+ checkIn?: string | undefined;
849
+ checkOut?: string | undefined;
850
+ specialRequests?: string | undefined;
851
+ };
852
+ };
853
+ output: {
854
+ error: string;
855
+ };
856
+ outputFormat: "json";
857
+ status: 400;
858
+ } | {
859
+ input: {
860
+ json: {
861
+ programId: string;
862
+ roomBlockId?: string | undefined;
863
+ roomTypeId?: string | undefined;
864
+ bedConfig?: string | undefined;
865
+ sharingGroupId?: string | undefined;
866
+ checkIn?: string | undefined;
867
+ checkOut?: string | undefined;
868
+ specialRequests?: string | undefined;
869
+ };
870
+ };
479
871
  output: {
480
872
  error: string;
481
873
  };
482
874
  outputFormat: "json";
483
875
  status: 404;
484
876
  } | {
485
- input: {};
877
+ input: {
878
+ json: {
879
+ programId: string;
880
+ roomBlockId?: string | undefined;
881
+ roomTypeId?: string | undefined;
882
+ bedConfig?: string | undefined;
883
+ sharingGroupId?: string | undefined;
884
+ checkIn?: string | undefined;
885
+ checkOut?: string | undefined;
886
+ specialRequests?: string | undefined;
887
+ };
888
+ };
486
889
  output: {
487
890
  data: {
891
+ id: string;
892
+ programId: string;
893
+ roomBlockId: string | null;
894
+ roomTypeId: string | null;
895
+ bedConfig: string | null;
896
+ sharingGroupId: string | null;
897
+ checkIn: string | null;
898
+ checkOut: string | null;
899
+ specialRequests: string | null;
488
900
  metadata: {
489
901
  [x: string]: import("hono/utils/types").JSONValue;
490
902
  } | null;
491
- status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
492
- id: string;
493
903
  createdAt: string;
494
904
  updatedAt: string;
495
- role: "staff" | "attendee" | "speaker" | "sponsor" | "vip" | "exhibitor" | "organizer";
496
- notes: string | null;
497
- bookingId: string | null;
498
- programId: string;
499
- personId: string | null;
500
- arrivalAt: string | null;
501
- departureAt: string | null;
502
905
  };
503
906
  };
504
907
  outputFormat: "json";
@@ -506,7 +909,7 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
506
909
  };
507
910
  };
508
911
  } & {
509
- "/delegates/:id": {
912
+ "/rooming-assignments/:id": {
510
913
  $get: {
511
914
  input: {
512
915
  param: {
@@ -526,41 +929,72 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
526
929
  };
527
930
  output: {
528
931
  data: {
932
+ id: string;
933
+ programId: string;
934
+ roomBlockId: string | null;
935
+ roomTypeId: string | null;
936
+ bedConfig: string | null;
937
+ sharingGroupId: string | null;
938
+ checkIn: string | null;
939
+ checkOut: string | null;
940
+ specialRequests: string | null;
529
941
  metadata: {
530
942
  [x: string]: import("hono/utils/types").JSONValue;
531
943
  } | null;
532
- status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
533
- id: string;
534
944
  createdAt: string;
535
945
  updatedAt: string;
536
- role: "staff" | "attendee" | "speaker" | "sponsor" | "vip" | "exhibitor" | "organizer";
537
- notes: string | null;
538
- bookingId: string | null;
539
- programId: string;
540
- personId: string | null;
541
- arrivalAt: string | null;
542
- departureAt: string | null;
543
- enrollments: {
544
- status: "cancelled" | "registered" | "waitlisted" | "attended";
946
+ delegates: {
545
947
  id: string;
546
- createdAt: string;
547
- updatedAt: string;
548
- sessionId: string;
948
+ roomingAssignmentId: string;
549
949
  delegateId: string;
950
+ isPrimary: boolean;
951
+ bedLabel: string | null;
952
+ createdAt: string;
550
953
  }[];
551
954
  };
552
955
  };
553
956
  outputFormat: "json";
554
- status: import("hono/utils/http-status").ContentfulStatusCode;
957
+ status: 200;
555
958
  };
556
959
  };
557
960
  } & {
558
- "/delegates/:id": {
961
+ "/rooming-assignments/:id": {
559
962
  $patch: {
560
963
  input: {
561
964
  param: {
562
965
  id: string;
563
966
  };
967
+ } & {
968
+ json: {
969
+ roomBlockId?: string | undefined;
970
+ roomTypeId?: string | undefined;
971
+ bedConfig?: string | undefined;
972
+ sharingGroupId?: string | undefined;
973
+ checkIn?: string | undefined;
974
+ checkOut?: string | undefined;
975
+ specialRequests?: string | undefined;
976
+ };
977
+ };
978
+ output: {
979
+ error: string;
980
+ };
981
+ outputFormat: "json";
982
+ status: 400;
983
+ } | {
984
+ input: {
985
+ param: {
986
+ id: string;
987
+ };
988
+ } & {
989
+ json: {
990
+ roomBlockId?: string | undefined;
991
+ roomTypeId?: string | undefined;
992
+ bedConfig?: string | undefined;
993
+ sharingGroupId?: string | undefined;
994
+ checkIn?: string | undefined;
995
+ checkOut?: string | undefined;
996
+ specialRequests?: string | undefined;
997
+ };
564
998
  };
565
999
  output: {
566
1000
  error: string;
@@ -572,57 +1006,105 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
572
1006
  param: {
573
1007
  id: string;
574
1008
  };
1009
+ } & {
1010
+ json: {
1011
+ roomBlockId?: string | undefined;
1012
+ roomTypeId?: string | undefined;
1013
+ bedConfig?: string | undefined;
1014
+ sharingGroupId?: string | undefined;
1015
+ checkIn?: string | undefined;
1016
+ checkOut?: string | undefined;
1017
+ specialRequests?: string | undefined;
1018
+ };
575
1019
  };
576
1020
  output: {
577
1021
  data: {
1022
+ id: string;
1023
+ programId: string;
1024
+ roomBlockId: string | null;
1025
+ roomTypeId: string | null;
1026
+ bedConfig: string | null;
1027
+ sharingGroupId: string | null;
1028
+ checkIn: string | null;
1029
+ checkOut: string | null;
1030
+ specialRequests: string | null;
578
1031
  metadata: {
579
1032
  [x: string]: import("hono/utils/types").JSONValue;
580
1033
  } | null;
581
- status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
582
- id: string;
583
1034
  createdAt: string;
584
1035
  updatedAt: string;
585
- role: "staff" | "attendee" | "speaker" | "sponsor" | "vip" | "exhibitor" | "organizer";
586
- notes: string | null;
587
- bookingId: string | null;
588
- programId: string;
589
- personId: string | null;
590
- arrivalAt: string | null;
591
- departureAt: string | null;
592
1036
  };
593
1037
  };
594
1038
  outputFormat: "json";
595
- status: import("hono/utils/http-status").ContentfulStatusCode;
1039
+ status: 200;
596
1040
  };
597
1041
  };
598
1042
  } & {
599
- "/delegates/:id/enrollments": {
600
- $post: {
1043
+ "/rooming-assignments/:id/delegates": {
1044
+ $put: {
1045
+ input: {
1046
+ param: {
1047
+ id: string;
1048
+ };
1049
+ } & {
1050
+ json: {
1051
+ delegates: {
1052
+ delegateId: string;
1053
+ isPrimary?: boolean | undefined;
1054
+ bedLabel?: string | undefined;
1055
+ }[];
1056
+ };
1057
+ };
1058
+ output: {
1059
+ error: string;
1060
+ };
1061
+ outputFormat: "json";
1062
+ status: 400;
1063
+ } | {
601
1064
  input: {
602
1065
  param: {
603
1066
  id: string;
604
1067
  };
1068
+ } & {
1069
+ json: {
1070
+ delegates: {
1071
+ delegateId: string;
1072
+ isPrimary?: boolean | undefined;
1073
+ bedLabel?: string | undefined;
1074
+ }[];
1075
+ };
605
1076
  };
606
1077
  output: {
607
1078
  data: {
608
- status: "cancelled" | "registered" | "waitlisted" | "attended";
609
1079
  id: string;
610
- createdAt: string;
611
- updatedAt: string;
612
- sessionId: string;
1080
+ roomingAssignmentId: string;
613
1081
  delegateId: string;
614
- };
1082
+ isPrimary: boolean;
1083
+ bedLabel: string | null;
1084
+ createdAt: string;
1085
+ }[];
615
1086
  };
616
1087
  outputFormat: "json";
617
- status: 200 | 201;
1088
+ status: 200;
618
1089
  } | {
619
1090
  input: {
620
1091
  param: {
621
1092
  id: string;
622
1093
  };
1094
+ } & {
1095
+ json: {
1096
+ delegates: {
1097
+ delegateId: string;
1098
+ isPrimary?: boolean | undefined;
1099
+ bedLabel?: string | undefined;
1100
+ }[];
1101
+ };
623
1102
  };
624
1103
  output: {
625
1104
  error: string;
1105
+ detail?: {
1106
+ missing: string[];
1107
+ } | undefined;
626
1108
  };
627
1109
  outputFormat: "json";
628
1110
  status: 404;
@@ -631,69 +1113,128 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
631
1113
  param: {
632
1114
  id: string;
633
1115
  };
1116
+ } & {
1117
+ json: {
1118
+ delegates: {
1119
+ delegateId: string;
1120
+ isPrimary?: boolean | undefined;
1121
+ bedLabel?: string | undefined;
1122
+ }[];
1123
+ };
634
1124
  };
635
1125
  output: {
636
1126
  error: string;
1127
+ detail?: {
1128
+ offending: string[];
1129
+ } | undefined;
637
1130
  };
638
1131
  outputFormat: "json";
639
1132
  status: 409;
640
1133
  };
641
1134
  };
642
- } & {
643
- "/rooming-assignments": {
1135
+ }, "/"> & import("hono/types").MergeSchemaPath<{
1136
+ "/delegates": {
644
1137
  $get: {
645
- input: {};
1138
+ input: {
1139
+ query: {
1140
+ programId: string;
1141
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1142
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1143
+ limit?: unknown;
1144
+ offset?: unknown;
1145
+ };
1146
+ };
646
1147
  output: {
647
1148
  data: {
1149
+ id: string;
1150
+ programId: string;
1151
+ personId: string | null;
1152
+ bookingId: string | null;
1153
+ role: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer";
1154
+ status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
1155
+ arrivalAt: string | null;
1156
+ departureAt: string | null;
1157
+ notes: string | null;
648
1158
  metadata: {
649
1159
  [x: string]: import("hono/utils/types").JSONValue;
650
1160
  } | null;
651
- id: string;
652
1161
  createdAt: string;
653
1162
  updatedAt: string;
654
- programId: string;
655
- roomBlockId: string | null;
656
- roomTypeId: string | null;
657
- bedConfig: string | null;
658
- sharingGroupId: string | null;
659
- checkIn: string | null;
660
- checkOut: string | null;
661
- specialRequests: string | null;
662
1163
  }[];
663
1164
  limit: number;
664
1165
  offset: number;
665
1166
  };
666
1167
  outputFormat: "json";
667
- status: import("hono/utils/http-status").ContentfulStatusCode;
1168
+ status: 200;
668
1169
  };
669
1170
  };
670
1171
  } & {
671
- "/rooming-assignments": {
1172
+ "/delegates": {
672
1173
  $post: {
673
- input: {};
1174
+ input: {
1175
+ json: {
1176
+ programId: string;
1177
+ personId?: string | undefined;
1178
+ bookingId?: string | undefined;
1179
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1180
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1181
+ arrivalAt?: string | undefined;
1182
+ departureAt?: string | undefined;
1183
+ notes?: string | undefined;
1184
+ };
1185
+ };
1186
+ output: {
1187
+ error: string;
1188
+ };
1189
+ outputFormat: "json";
1190
+ status: 400;
1191
+ } | {
1192
+ input: {
1193
+ json: {
1194
+ programId: string;
1195
+ personId?: string | undefined;
1196
+ bookingId?: string | undefined;
1197
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1198
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1199
+ arrivalAt?: string | undefined;
1200
+ departureAt?: string | undefined;
1201
+ notes?: string | undefined;
1202
+ };
1203
+ };
674
1204
  output: {
675
1205
  error: string;
676
1206
  };
677
1207
  outputFormat: "json";
678
1208
  status: 404;
679
1209
  } | {
680
- input: {};
1210
+ input: {
1211
+ json: {
1212
+ programId: string;
1213
+ personId?: string | undefined;
1214
+ bookingId?: string | undefined;
1215
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1216
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1217
+ arrivalAt?: string | undefined;
1218
+ departureAt?: string | undefined;
1219
+ notes?: string | undefined;
1220
+ };
1221
+ };
681
1222
  output: {
682
1223
  data: {
1224
+ id: string;
1225
+ programId: string;
1226
+ personId: string | null;
1227
+ bookingId: string | null;
1228
+ role: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer";
1229
+ status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
1230
+ arrivalAt: string | null;
1231
+ departureAt: string | null;
1232
+ notes: string | null;
683
1233
  metadata: {
684
1234
  [x: string]: import("hono/utils/types").JSONValue;
685
1235
  } | null;
686
- id: string;
687
1236
  createdAt: string;
688
1237
  updatedAt: string;
689
- programId: string;
690
- roomBlockId: string | null;
691
- roomTypeId: string | null;
692
- bedConfig: string | null;
693
- sharingGroupId: string | null;
694
- checkIn: string | null;
695
- checkOut: string | null;
696
- specialRequests: string | null;
697
1238
  };
698
1239
  };
699
1240
  outputFormat: "json";
@@ -701,7 +1242,7 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
701
1242
  };
702
1243
  };
703
1244
  } & {
704
- "/rooming-assignments/:id": {
1245
+ "/delegates/:id": {
705
1246
  $get: {
706
1247
  input: {
707
1248
  param: {
@@ -721,41 +1262,72 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
721
1262
  };
722
1263
  output: {
723
1264
  data: {
1265
+ id: string;
1266
+ programId: string;
1267
+ personId: string | null;
1268
+ bookingId: string | null;
1269
+ role: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer";
1270
+ status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
1271
+ arrivalAt: string | null;
1272
+ departureAt: string | null;
1273
+ notes: string | null;
724
1274
  metadata: {
725
1275
  [x: string]: import("hono/utils/types").JSONValue;
726
1276
  } | null;
727
- id: string;
728
1277
  createdAt: string;
729
1278
  updatedAt: string;
730
- programId: string;
731
- roomBlockId: string | null;
732
- roomTypeId: string | null;
733
- bedConfig: string | null;
734
- sharingGroupId: string | null;
735
- checkIn: string | null;
736
- checkOut: string | null;
737
- specialRequests: string | null;
738
- delegates: {
1279
+ enrollments: {
739
1280
  id: string;
740
- createdAt: string;
741
1281
  delegateId: string;
742
- roomingAssignmentId: string;
743
- isPrimary: boolean;
744
- bedLabel: string | null;
1282
+ sessionId: string;
1283
+ status: "cancelled" | "registered" | "waitlisted" | "attended";
1284
+ createdAt: string;
1285
+ updatedAt: string;
745
1286
  }[];
746
1287
  };
747
1288
  };
748
1289
  outputFormat: "json";
749
- status: import("hono/utils/http-status").ContentfulStatusCode;
1290
+ status: 200;
750
1291
  };
751
1292
  };
752
1293
  } & {
753
- "/rooming-assignments/:id": {
1294
+ "/delegates/:id": {
754
1295
  $patch: {
755
1296
  input: {
756
1297
  param: {
757
1298
  id: string;
758
1299
  };
1300
+ } & {
1301
+ json: {
1302
+ bookingId?: string | undefined;
1303
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1304
+ notes?: string | undefined;
1305
+ personId?: string | undefined;
1306
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1307
+ arrivalAt?: string | undefined;
1308
+ departureAt?: string | undefined;
1309
+ };
1310
+ };
1311
+ output: {
1312
+ error: string;
1313
+ };
1314
+ outputFormat: "json";
1315
+ status: 400;
1316
+ } | {
1317
+ input: {
1318
+ param: {
1319
+ id: string;
1320
+ };
1321
+ } & {
1322
+ json: {
1323
+ bookingId?: string | undefined;
1324
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1325
+ notes?: string | undefined;
1326
+ personId?: string | undefined;
1327
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1328
+ arrivalAt?: string | undefined;
1329
+ departureAt?: string | undefined;
1330
+ };
759
1331
  };
760
1332
  output: {
761
1333
  error: string;
@@ -767,127 +1339,254 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
767
1339
  param: {
768
1340
  id: string;
769
1341
  };
1342
+ } & {
1343
+ json: {
1344
+ bookingId?: string | undefined;
1345
+ status?: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show" | undefined;
1346
+ notes?: string | undefined;
1347
+ personId?: string | undefined;
1348
+ role?: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer" | undefined;
1349
+ arrivalAt?: string | undefined;
1350
+ departureAt?: string | undefined;
1351
+ };
770
1352
  };
771
1353
  output: {
772
1354
  data: {
1355
+ id: string;
1356
+ programId: string;
1357
+ personId: string | null;
1358
+ bookingId: string | null;
1359
+ role: "attendee" | "speaker" | "sponsor" | "vip" | "staff" | "exhibitor" | "organizer";
1360
+ status: "cancelled" | "invited" | "registered" | "confirmed" | "checked_in" | "no_show";
1361
+ arrivalAt: string | null;
1362
+ departureAt: string | null;
1363
+ notes: string | null;
773
1364
  metadata: {
774
1365
  [x: string]: import("hono/utils/types").JSONValue;
775
1366
  } | null;
776
- id: string;
777
1367
  createdAt: string;
778
1368
  updatedAt: string;
779
- programId: string;
780
- roomBlockId: string | null;
781
- roomTypeId: string | null;
782
- bedConfig: string | null;
783
- sharingGroupId: string | null;
784
- checkIn: string | null;
785
- checkOut: string | null;
786
- specialRequests: string | null;
787
1369
  };
788
1370
  };
789
1371
  outputFormat: "json";
790
- status: import("hono/utils/http-status").ContentfulStatusCode;
1372
+ status: 200;
791
1373
  };
792
1374
  };
793
1375
  } & {
794
- "/rooming-assignments/:id/delegates": {
795
- $put: {
1376
+ "/delegates/:id/enrollments": {
1377
+ $post: {
1378
+ input: {
1379
+ param: {
1380
+ id: string;
1381
+ };
1382
+ } & {
1383
+ json: {
1384
+ sessionId: string;
1385
+ status?: "cancelled" | "registered" | "waitlisted" | "attended" | undefined;
1386
+ };
1387
+ };
1388
+ output: {
1389
+ error: string;
1390
+ };
1391
+ outputFormat: "json";
1392
+ status: 400;
1393
+ } | {
1394
+ input: {
1395
+ param: {
1396
+ id: string;
1397
+ };
1398
+ } & {
1399
+ json: {
1400
+ sessionId: string;
1401
+ status?: "cancelled" | "registered" | "waitlisted" | "attended" | undefined;
1402
+ };
1403
+ };
1404
+ output: {
1405
+ error: string;
1406
+ };
1407
+ outputFormat: "json";
1408
+ status: 404;
1409
+ } | {
796
1410
  input: {
797
1411
  param: {
798
1412
  id: string;
799
1413
  };
1414
+ } & {
1415
+ json: {
1416
+ sessionId: string;
1417
+ status?: "cancelled" | "registered" | "waitlisted" | "attended" | undefined;
1418
+ };
800
1419
  };
801
1420
  output: {
802
1421
  data: {
803
1422
  id: string;
804
- createdAt: string;
805
1423
  delegateId: string;
806
- roomingAssignmentId: string;
807
- isPrimary: boolean;
808
- bedLabel: string | null;
809
- }[];
1424
+ sessionId: string;
1425
+ status: "cancelled" | "registered" | "waitlisted" | "attended";
1426
+ createdAt: string;
1427
+ updatedAt: string;
1428
+ };
810
1429
  };
811
1430
  outputFormat: "json";
812
- status: import("hono/utils/http-status").ContentfulStatusCode;
1431
+ status: 200;
813
1432
  } | {
814
1433
  input: {
815
1434
  param: {
816
1435
  id: string;
817
1436
  };
1437
+ } & {
1438
+ json: {
1439
+ sessionId: string;
1440
+ status?: "cancelled" | "registered" | "waitlisted" | "attended" | undefined;
1441
+ };
818
1442
  };
819
1443
  output: {
820
- error: string;
1444
+ data: {
1445
+ id: string;
1446
+ delegateId: string;
1447
+ sessionId: string;
1448
+ status: "cancelled" | "registered" | "waitlisted" | "attended";
1449
+ createdAt: string;
1450
+ updatedAt: string;
1451
+ };
821
1452
  };
822
1453
  outputFormat: "json";
823
- status: 404;
1454
+ status: 201;
824
1455
  } | {
825
1456
  input: {
826
1457
  param: {
827
1458
  id: string;
828
1459
  };
1460
+ } & {
1461
+ json: {
1462
+ sessionId: string;
1463
+ status?: "cancelled" | "registered" | "waitlisted" | "attended" | undefined;
1464
+ };
829
1465
  };
830
1466
  output: {
831
1467
  error: string;
832
- detail: {
833
- offending: string[];
834
- };
835
1468
  };
836
1469
  outputFormat: "json";
837
1470
  status: 409;
838
1471
  };
839
1472
  };
840
- } & {
841
- "/rfps": {
1473
+ }, "/"> & import("hono/types").MergeSchemaPath<{
1474
+ "/sessions": {
842
1475
  $get: {
843
- input: {};
1476
+ input: {
1477
+ query: {
1478
+ programId: string;
1479
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1480
+ limit?: unknown;
1481
+ offset?: unknown;
1482
+ };
1483
+ };
844
1484
  output: {
845
1485
  data: {
846
- status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
847
1486
  id: string;
848
- createdAt: string;
849
- updatedAt: string;
850
- notes: string | null;
851
1487
  programId: string;
1488
+ functionSpaceId: string | null;
852
1489
  title: string;
853
- requirements: {
1490
+ sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
1491
+ dayDate: string | null;
1492
+ startsAt: string | null;
1493
+ endsAt: string | null;
1494
+ track: string | null;
1495
+ capacity: number | null;
1496
+ requiresRegistration: boolean;
1497
+ notes: string | null;
1498
+ metadata: {
854
1499
  [x: string]: import("hono/utils/types").JSONValue;
855
1500
  } | null;
856
- issuedAt: string | null;
857
- dueAt: string | null;
1501
+ createdAt: string;
1502
+ updatedAt: string;
858
1503
  }[];
859
1504
  limit: number;
860
1505
  offset: number;
861
1506
  };
862
1507
  outputFormat: "json";
863
- status: import("hono/utils/http-status").ContentfulStatusCode;
1508
+ status: 200;
864
1509
  };
865
1510
  };
866
1511
  } & {
867
- "/rfps": {
1512
+ "/sessions": {
868
1513
  $post: {
869
- input: {};
1514
+ input: {
1515
+ json: {
1516
+ programId: string;
1517
+ title: string;
1518
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1519
+ functionSpaceId?: string | undefined;
1520
+ dayDate?: string | undefined;
1521
+ startsAt?: string | undefined;
1522
+ endsAt?: string | undefined;
1523
+ track?: string | undefined;
1524
+ capacity?: number | undefined;
1525
+ requiresRegistration?: boolean | undefined;
1526
+ notes?: string | undefined;
1527
+ };
1528
+ };
1529
+ output: {
1530
+ error: string;
1531
+ };
1532
+ outputFormat: "json";
1533
+ status: 400;
1534
+ } | {
1535
+ input: {
1536
+ json: {
1537
+ programId: string;
1538
+ title: string;
1539
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1540
+ functionSpaceId?: string | undefined;
1541
+ dayDate?: string | undefined;
1542
+ startsAt?: string | undefined;
1543
+ endsAt?: string | undefined;
1544
+ track?: string | undefined;
1545
+ capacity?: number | undefined;
1546
+ requiresRegistration?: boolean | undefined;
1547
+ notes?: string | undefined;
1548
+ };
1549
+ };
870
1550
  output: {
871
1551
  error: string;
872
1552
  };
873
1553
  outputFormat: "json";
874
1554
  status: 404;
875
1555
  } | {
876
- input: {};
1556
+ input: {
1557
+ json: {
1558
+ programId: string;
1559
+ title: string;
1560
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1561
+ functionSpaceId?: string | undefined;
1562
+ dayDate?: string | undefined;
1563
+ startsAt?: string | undefined;
1564
+ endsAt?: string | undefined;
1565
+ track?: string | undefined;
1566
+ capacity?: number | undefined;
1567
+ requiresRegistration?: boolean | undefined;
1568
+ notes?: string | undefined;
1569
+ };
1570
+ };
877
1571
  output: {
878
1572
  data: {
879
- status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
880
1573
  id: string;
881
- createdAt: string;
882
- updatedAt: string;
883
- notes: string | null;
884
1574
  programId: string;
1575
+ functionSpaceId: string | null;
885
1576
  title: string;
886
- requirements: {
1577
+ sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
1578
+ dayDate: string | null;
1579
+ startsAt: string | null;
1580
+ endsAt: string | null;
1581
+ track: string | null;
1582
+ capacity: number | null;
1583
+ requiresRegistration: boolean;
1584
+ notes: string | null;
1585
+ metadata: {
887
1586
  [x: string]: import("hono/utils/types").JSONValue;
888
1587
  } | null;
889
- issuedAt: string | null;
890
- dueAt: string | null;
1588
+ createdAt: string;
1589
+ updatedAt: string;
891
1590
  };
892
1591
  };
893
1592
  outputFormat: "json";
@@ -895,7 +1594,7 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
895
1594
  };
896
1595
  };
897
1596
  } & {
898
- "/rfps/:id": {
1597
+ "/sessions/:id": {
899
1598
  $get: {
900
1599
  input: {
901
1600
  param: {
@@ -915,52 +1614,84 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
915
1614
  };
916
1615
  output: {
917
1616
  data: {
918
- status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
919
1617
  id: string;
920
- createdAt: string;
921
- updatedAt: string;
922
- notes: string | null;
923
1618
  programId: string;
1619
+ functionSpaceId: string | null;
924
1620
  title: string;
925
- requirements: {
1621
+ sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
1622
+ dayDate: string | null;
1623
+ startsAt: string | null;
1624
+ endsAt: string | null;
1625
+ track: string | null;
1626
+ capacity: number | null;
1627
+ requiresRegistration: boolean;
1628
+ notes: string | null;
1629
+ metadata: {
926
1630
  [x: string]: import("hono/utils/types").JSONValue;
927
1631
  } | null;
928
- issuedAt: string | null;
929
- dueAt: string | null;
930
- invitations: {
931
- status: "invited" | "viewed" | "declined" | "responded";
1632
+ createdAt: string;
1633
+ updatedAt: string;
1634
+ inclusions: {
932
1635
  id: string;
933
- createdAt: string;
934
- updatedAt: string;
935
- rfpId: string;
936
- supplierId: string;
937
- }[];
938
- bids: {
1636
+ sessionId: string;
1637
+ kind: "fnb" | "av" | "materials" | "signage" | "other";
1638
+ description: string | null;
1639
+ quantity: number;
1640
+ costAmountCents: number | null;
939
1641
  currency: string | null;
940
- status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
941
- id: string;
942
1642
  createdAt: string;
943
1643
  updatedAt: string;
944
- notes: string | null;
945
- rfpId: string;
946
- supplierId: string;
947
- totalCents: number | null;
948
- proposalDoc: string | null;
949
- validUntil: string | null;
950
1644
  }[];
951
1645
  };
952
1646
  };
953
1647
  outputFormat: "json";
954
- status: import("hono/utils/http-status").ContentfulStatusCode;
1648
+ status: 200;
955
1649
  };
956
1650
  };
957
1651
  } & {
958
- "/rfps/:id": {
1652
+ "/sessions/:id": {
959
1653
  $patch: {
960
1654
  input: {
961
1655
  param: {
962
1656
  id: string;
963
1657
  };
1658
+ } & {
1659
+ json: {
1660
+ title?: string | undefined;
1661
+ functionSpaceId?: string | undefined;
1662
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1663
+ dayDate?: string | undefined;
1664
+ startsAt?: string | undefined;
1665
+ endsAt?: string | undefined;
1666
+ track?: string | undefined;
1667
+ capacity?: number | undefined;
1668
+ requiresRegistration?: boolean | undefined;
1669
+ notes?: string | undefined;
1670
+ };
1671
+ };
1672
+ output: {
1673
+ error: string;
1674
+ };
1675
+ outputFormat: "json";
1676
+ status: 400;
1677
+ } | {
1678
+ input: {
1679
+ param: {
1680
+ id: string;
1681
+ };
1682
+ } & {
1683
+ json: {
1684
+ title?: string | undefined;
1685
+ functionSpaceId?: string | undefined;
1686
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1687
+ dayDate?: string | undefined;
1688
+ startsAt?: string | undefined;
1689
+ endsAt?: string | undefined;
1690
+ track?: string | undefined;
1691
+ capacity?: number | undefined;
1692
+ requiresRegistration?: boolean | undefined;
1693
+ notes?: string | undefined;
1694
+ };
964
1695
  };
965
1696
  output: {
966
1697
  error: string;
@@ -972,30 +1703,48 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
972
1703
  param: {
973
1704
  id: string;
974
1705
  };
1706
+ } & {
1707
+ json: {
1708
+ title?: string | undefined;
1709
+ functionSpaceId?: string | undefined;
1710
+ sessionType?: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free" | undefined;
1711
+ dayDate?: string | undefined;
1712
+ startsAt?: string | undefined;
1713
+ endsAt?: string | undefined;
1714
+ track?: string | undefined;
1715
+ capacity?: number | undefined;
1716
+ requiresRegistration?: boolean | undefined;
1717
+ notes?: string | undefined;
1718
+ };
975
1719
  };
976
1720
  output: {
977
1721
  data: {
978
- status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
979
1722
  id: string;
980
- createdAt: string;
981
- updatedAt: string;
982
- notes: string | null;
983
1723
  programId: string;
1724
+ functionSpaceId: string | null;
984
1725
  title: string;
985
- requirements: {
1726
+ sessionType: "keynote" | "breakout" | "meal" | "networking" | "gala" | "excursion" | "free";
1727
+ dayDate: string | null;
1728
+ startsAt: string | null;
1729
+ endsAt: string | null;
1730
+ track: string | null;
1731
+ capacity: number | null;
1732
+ requiresRegistration: boolean;
1733
+ notes: string | null;
1734
+ metadata: {
986
1735
  [x: string]: import("hono/utils/types").JSONValue;
987
1736
  } | null;
988
- issuedAt: string | null;
989
- dueAt: string | null;
1737
+ createdAt: string;
1738
+ updatedAt: string;
990
1739
  };
991
1740
  };
992
1741
  outputFormat: "json";
993
- status: import("hono/utils/http-status").ContentfulStatusCode;
1742
+ status: 200;
994
1743
  };
995
1744
  };
996
1745
  } & {
997
- "/rfps/:id/invitations": {
998
- $post: {
1746
+ "/sessions/:id": {
1747
+ $delete: {
999
1748
  input: {
1000
1749
  param: {
1001
1750
  id: string;
@@ -1013,26 +1762,50 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1013
1762
  };
1014
1763
  };
1015
1764
  output: {
1016
- data: {
1017
- status: "invited" | "viewed" | "declined" | "responded";
1018
- id: string;
1019
- createdAt: string;
1020
- updatedAt: string;
1021
- rfpId: string;
1022
- supplierId: string;
1023
- };
1765
+ success: true;
1024
1766
  };
1025
1767
  outputFormat: "json";
1026
- status: 200 | 201;
1768
+ status: 200;
1027
1769
  };
1028
1770
  };
1029
1771
  } & {
1030
- "/rfps/:id/bids": {
1031
- $post: {
1772
+ "/sessions/:id/inclusions": {
1773
+ $put: {
1774
+ input: {
1775
+ param: {
1776
+ id: string;
1777
+ };
1778
+ } & {
1779
+ json: {
1780
+ inclusions: {
1781
+ kind: "fnb" | "av" | "materials" | "signage" | "other";
1782
+ description?: string | undefined;
1783
+ quantity?: number | undefined;
1784
+ costAmountCents?: number | undefined;
1785
+ currency?: string | undefined;
1786
+ }[];
1787
+ };
1788
+ };
1789
+ output: {
1790
+ error: string;
1791
+ };
1792
+ outputFormat: "json";
1793
+ status: 400;
1794
+ } | {
1032
1795
  input: {
1033
1796
  param: {
1034
1797
  id: string;
1035
1798
  };
1799
+ } & {
1800
+ json: {
1801
+ inclusions: {
1802
+ kind: "fnb" | "av" | "materials" | "signage" | "other";
1803
+ description?: string | undefined;
1804
+ quantity?: number | undefined;
1805
+ costAmountCents?: number | undefined;
1806
+ currency?: string | undefined;
1807
+ }[];
1808
+ };
1036
1809
  };
1037
1810
  output: {
1038
1811
  error: string;
@@ -1044,93 +1817,151 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1044
1817
  param: {
1045
1818
  id: string;
1046
1819
  };
1820
+ } & {
1821
+ json: {
1822
+ inclusions: {
1823
+ kind: "fnb" | "av" | "materials" | "signage" | "other";
1824
+ description?: string | undefined;
1825
+ quantity?: number | undefined;
1826
+ costAmountCents?: number | undefined;
1827
+ currency?: string | undefined;
1828
+ }[];
1829
+ };
1047
1830
  };
1048
1831
  output: {
1049
1832
  data: {
1050
- currency: string | null;
1051
- status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
1052
1833
  id: string;
1834
+ sessionId: string;
1835
+ kind: "fnb" | "av" | "materials" | "signage" | "other";
1836
+ description: string | null;
1837
+ quantity: number;
1838
+ costAmountCents: number | null;
1839
+ currency: string | null;
1053
1840
  createdAt: string;
1054
1841
  updatedAt: string;
1055
- notes: string | null;
1056
- rfpId: string;
1057
- supplierId: string;
1058
- totalCents: number | null;
1059
- proposalDoc: string | null;
1060
- validUntil: string | null;
1061
- };
1842
+ }[];
1062
1843
  };
1063
1844
  outputFormat: "json";
1064
- status: 201;
1845
+ status: 200;
1065
1846
  };
1066
1847
  };
1067
- } & {
1068
- "/rfps/:id/award": {
1069
- $post: {
1848
+ }, "/"> & import("hono/types").MergeSchemaPath<{
1849
+ "/programs": {
1850
+ $get: {
1070
1851
  input: {
1071
- param: {
1072
- id: string;
1852
+ query: {
1853
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
1854
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
1855
+ organizationId?: string | undefined;
1856
+ limit?: unknown;
1857
+ offset?: unknown;
1073
1858
  };
1074
1859
  };
1075
1860
  output: {
1076
1861
  data: {
1077
- rfp: {
1078
- status: "cancelled" | "draft" | "issued" | "closed" | "awarded";
1079
- id: string;
1080
- createdAt: string;
1081
- updatedAt: string;
1082
- notes: string | null;
1083
- programId: string;
1084
- title: string;
1085
- requirements: {
1086
- [x: string]: import("hono/utils/types").JSONValue;
1087
- } | null;
1088
- issuedAt: string | null;
1089
- dueAt: string | null;
1090
- };
1091
- bid: {
1092
- currency: string | null;
1093
- status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
1094
- id: string;
1095
- createdAt: string;
1096
- updatedAt: string;
1097
- notes: string | null;
1098
- rfpId: string;
1099
- supplierId: string;
1100
- totalCents: number | null;
1101
- proposalDoc: string | null;
1102
- validUntil: string | null;
1103
- };
1104
- };
1862
+ id: string;
1863
+ organizationId: string | null;
1864
+ primaryContactPersonId: string | null;
1865
+ accountManagerId: string | null;
1866
+ name: string;
1867
+ code: string | null;
1868
+ type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
1869
+ status: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled";
1870
+ destination: string | null;
1871
+ startDate: string | null;
1872
+ endDate: string | null;
1873
+ estimatedPax: number | null;
1874
+ confirmedPax: number | null;
1875
+ currency: string | null;
1876
+ budgetAmountCents: number | null;
1877
+ metadata: {
1878
+ [x: string]: import("hono/utils/types").JSONValue;
1879
+ } | null;
1880
+ createdAt: string;
1881
+ updatedAt: string;
1882
+ }[];
1883
+ limit: number;
1884
+ offset: number;
1105
1885
  };
1106
1886
  outputFormat: "json";
1107
- status: import("hono/utils/http-status").ContentfulStatusCode;
1108
- } | {
1887
+ status: 200;
1888
+ };
1889
+ };
1890
+ } & {
1891
+ "/programs": {
1892
+ $post: {
1109
1893
  input: {
1110
- param: {
1111
- id: string;
1894
+ json: {
1895
+ name: string;
1896
+ organizationId?: string | undefined;
1897
+ primaryContactPersonId?: string | undefined;
1898
+ accountManagerId?: string | undefined;
1899
+ code?: string | undefined;
1900
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
1901
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
1902
+ destination?: string | undefined;
1903
+ startDate?: string | undefined;
1904
+ endDate?: string | undefined;
1905
+ estimatedPax?: number | undefined;
1906
+ confirmedPax?: number | undefined;
1907
+ currency?: string | undefined;
1908
+ budgetAmountCents?: number | undefined;
1112
1909
  };
1113
1910
  };
1114
1911
  output: {
1115
- error: string;
1912
+ data: {
1913
+ id: string;
1914
+ organizationId: string | null;
1915
+ primaryContactPersonId: string | null;
1916
+ accountManagerId: string | null;
1917
+ name: string;
1918
+ code: string | null;
1919
+ type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
1920
+ status: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled";
1921
+ destination: string | null;
1922
+ startDate: string | null;
1923
+ endDate: string | null;
1924
+ estimatedPax: number | null;
1925
+ confirmedPax: number | null;
1926
+ currency: string | null;
1927
+ budgetAmountCents: number | null;
1928
+ metadata: {
1929
+ [x: string]: import("hono/utils/types").JSONValue;
1930
+ } | null;
1931
+ createdAt: string;
1932
+ updatedAt: string;
1933
+ };
1116
1934
  };
1117
1935
  outputFormat: "json";
1118
- status: 404;
1936
+ status: 201;
1119
1937
  } | {
1120
1938
  input: {
1121
- param: {
1122
- id: string;
1939
+ json: {
1940
+ name: string;
1941
+ organizationId?: string | undefined;
1942
+ primaryContactPersonId?: string | undefined;
1943
+ accountManagerId?: string | undefined;
1944
+ code?: string | undefined;
1945
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
1946
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
1947
+ destination?: string | undefined;
1948
+ startDate?: string | undefined;
1949
+ endDate?: string | undefined;
1950
+ estimatedPax?: number | undefined;
1951
+ confirmedPax?: number | undefined;
1952
+ currency?: string | undefined;
1953
+ budgetAmountCents?: number | undefined;
1123
1954
  };
1124
1955
  };
1125
1956
  output: {
1126
1957
  error: string;
1127
1958
  };
1128
1959
  outputFormat: "json";
1129
- status: 409;
1960
+ status: 400;
1130
1961
  };
1131
1962
  };
1132
1963
  } & {
1133
- "/bids/:id": {
1964
+ "/programs/:id/cost-sheet": {
1134
1965
  $get: {
1135
1966
  input: {
1136
1967
  param: {
@@ -1138,10 +1969,31 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1138
1969
  };
1139
1970
  };
1140
1971
  output: {
1141
- error: string;
1972
+ data: {
1973
+ programId: string;
1974
+ mixedCurrency: boolean;
1975
+ byCurrency: {
1976
+ currency: string;
1977
+ roomBlocks: {
1978
+ contractedCostCents: number;
1979
+ pickedCostCents: number;
1980
+ pickedSellCents: number;
1981
+ };
1982
+ spaceBlocks: {
1983
+ contractedCostCents: number;
1984
+ pickedCostCents: number;
1985
+ pickedSellCents: number;
1986
+ };
1987
+ sessionInclusionsCostCents: number;
1988
+ costCents: number;
1989
+ sellCents: number;
1990
+ marginCents: number;
1991
+ marginPct: number | null;
1992
+ }[];
1993
+ };
1142
1994
  };
1143
1995
  outputFormat: "json";
1144
- status: 404;
1996
+ status: 200;
1145
1997
  } | {
1146
1998
  input: {
1147
1999
  param: {
@@ -1149,47 +2001,15 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1149
2001
  };
1150
2002
  };
1151
2003
  output: {
1152
- data: {
1153
- currency: string | null;
1154
- status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
1155
- id: string;
1156
- createdAt: string;
1157
- updatedAt: string;
1158
- notes: string | null;
1159
- rfpId: string;
1160
- supplierId: string;
1161
- totalCents: number | null;
1162
- proposalDoc: string | null;
1163
- validUntil: string | null;
1164
- lines: {
1165
- id: string;
1166
- createdAt: string;
1167
- description: string | null;
1168
- quantity: number;
1169
- totalCents: number | null;
1170
- bidId: string;
1171
- requirementRef: string | null;
1172
- unitCents: number | null;
1173
- }[];
1174
- evaluations: {
1175
- id: string;
1176
- createdAt: string;
1177
- notes: string | null;
1178
- bidId: string;
1179
- criterion: string;
1180
- weight: number | null;
1181
- score: number | null;
1182
- evaluatedBy: string | null;
1183
- }[];
1184
- };
2004
+ error: string;
1185
2005
  };
1186
2006
  outputFormat: "json";
1187
- status: import("hono/utils/http-status").ContentfulStatusCode;
2007
+ status: 404;
1188
2008
  };
1189
2009
  };
1190
2010
  } & {
1191
- "/bids/:id": {
1192
- $patch: {
2011
+ "/programs/:id": {
2012
+ $get: {
1193
2013
  input: {
1194
2014
  param: {
1195
2015
  id: string;
@@ -1208,64 +2028,83 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1208
2028
  };
1209
2029
  output: {
1210
2030
  data: {
1211
- currency: string | null;
1212
- status: "draft" | "submitted" | "under_review" | "accepted" | "rejected";
1213
2031
  id: string;
2032
+ organizationId: string | null;
2033
+ primaryContactPersonId: string | null;
2034
+ accountManagerId: string | null;
2035
+ name: string;
2036
+ code: string | null;
2037
+ type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
2038
+ status: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled";
2039
+ destination: string | null;
2040
+ startDate: string | null;
2041
+ endDate: string | null;
2042
+ estimatedPax: number | null;
2043
+ confirmedPax: number | null;
2044
+ currency: string | null;
2045
+ budgetAmountCents: number | null;
2046
+ metadata: {
2047
+ [x: string]: import("hono/utils/types").JSONValue;
2048
+ } | null;
1214
2049
  createdAt: string;
1215
2050
  updatedAt: string;
1216
- notes: string | null;
1217
- rfpId: string;
1218
- supplierId: string;
1219
- totalCents: number | null;
1220
- proposalDoc: string | null;
1221
- validUntil: string | null;
1222
2051
  };
1223
2052
  };
1224
2053
  outputFormat: "json";
1225
- status: import("hono/utils/http-status").ContentfulStatusCode;
2054
+ status: 200;
1226
2055
  };
1227
2056
  };
1228
2057
  } & {
1229
- "/bids/:id/lines": {
1230
- $put: {
2058
+ "/programs/:id": {
2059
+ $patch: {
1231
2060
  input: {
1232
2061
  param: {
1233
2062
  id: string;
1234
2063
  };
2064
+ } & {
2065
+ json: {
2066
+ name?: string | undefined;
2067
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
2068
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
2069
+ organizationId?: string | null | undefined;
2070
+ primaryContactPersonId?: string | null | undefined;
2071
+ accountManagerId?: string | null | undefined;
2072
+ code?: string | null | undefined;
2073
+ destination?: string | null | undefined;
2074
+ startDate?: string | null | undefined;
2075
+ endDate?: string | null | undefined;
2076
+ estimatedPax?: number | null | undefined;
2077
+ confirmedPax?: number | null | undefined;
2078
+ currency?: string | null | undefined;
2079
+ budgetAmountCents?: number | null | undefined;
2080
+ };
1235
2081
  };
1236
2082
  output: {
1237
2083
  error: string;
1238
2084
  };
1239
2085
  outputFormat: "json";
1240
- status: 404;
2086
+ status: 400;
1241
2087
  } | {
1242
2088
  input: {
1243
2089
  param: {
1244
2090
  id: string;
1245
2091
  };
1246
- };
1247
- output: {
1248
- data: {
1249
- id: string;
1250
- createdAt: string;
1251
- description: string | null;
1252
- quantity: number;
1253
- totalCents: number | null;
1254
- bidId: string;
1255
- requirementRef: string | null;
1256
- unitCents: number | null;
1257
- }[];
1258
- };
1259
- outputFormat: "json";
1260
- status: import("hono/utils/http-status").ContentfulStatusCode;
1261
- };
1262
- };
1263
- } & {
1264
- "/bids/:id/evaluations": {
1265
- $post: {
1266
- input: {
1267
- param: {
1268
- id: string;
2092
+ } & {
2093
+ json: {
2094
+ name?: string | undefined;
2095
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
2096
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
2097
+ organizationId?: string | null | undefined;
2098
+ primaryContactPersonId?: string | null | undefined;
2099
+ accountManagerId?: string | null | undefined;
2100
+ code?: string | null | undefined;
2101
+ destination?: string | null | undefined;
2102
+ startDate?: string | null | undefined;
2103
+ endDate?: string | null | undefined;
2104
+ estimatedPax?: number | null | undefined;
2105
+ confirmedPax?: number | null | undefined;
2106
+ currency?: string | null | undefined;
2107
+ budgetAmountCents?: number | null | undefined;
1269
2108
  };
1270
2109
  };
1271
2110
  output: {
@@ -1278,24 +2117,53 @@ export declare const miceAdminRoutes: import("hono/hono-base").HonoBase<Env, {
1278
2117
  param: {
1279
2118
  id: string;
1280
2119
  };
2120
+ } & {
2121
+ json: {
2122
+ name?: string | undefined;
2123
+ type?: "other" | "meeting" | "incentive" | "conference" | "exhibition" | undefined;
2124
+ status?: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled" | undefined;
2125
+ organizationId?: string | null | undefined;
2126
+ primaryContactPersonId?: string | null | undefined;
2127
+ accountManagerId?: string | null | undefined;
2128
+ code?: string | null | undefined;
2129
+ destination?: string | null | undefined;
2130
+ startDate?: string | null | undefined;
2131
+ endDate?: string | null | undefined;
2132
+ estimatedPax?: number | null | undefined;
2133
+ confirmedPax?: number | null | undefined;
2134
+ currency?: string | null | undefined;
2135
+ budgetAmountCents?: number | null | undefined;
2136
+ };
1281
2137
  };
1282
2138
  output: {
1283
2139
  data: {
1284
2140
  id: string;
2141
+ organizationId: string | null;
2142
+ primaryContactPersonId: string | null;
2143
+ accountManagerId: string | null;
2144
+ name: string;
2145
+ code: string | null;
2146
+ type: "other" | "meeting" | "incentive" | "conference" | "exhibition";
2147
+ status: "lead" | "planning" | "contracted" | "operating" | "completed" | "cancelled";
2148
+ destination: string | null;
2149
+ startDate: string | null;
2150
+ endDate: string | null;
2151
+ estimatedPax: number | null;
2152
+ confirmedPax: number | null;
2153
+ currency: string | null;
2154
+ budgetAmountCents: number | null;
2155
+ metadata: {
2156
+ [x: string]: import("hono/utils/types").JSONValue;
2157
+ } | null;
1285
2158
  createdAt: string;
1286
- notes: string | null;
1287
- bidId: string;
1288
- criterion: string;
1289
- weight: number | null;
1290
- score: number | null;
1291
- evaluatedBy: string | null;
2159
+ updatedAt: string;
1292
2160
  };
1293
2161
  };
1294
2162
  outputFormat: "json";
1295
- status: 201;
2163
+ status: 200;
1296
2164
  };
1297
2165
  };
1298
- }, "/", "/bids/:id/evaluations">;
2166
+ }, "/">, "/">;
1299
2167
  export type MiceAdminRoutes = typeof miceAdminRoutes;
1300
2168
  export {};
1301
2169
  //# sourceMappingURL=routes.d.ts.map