@voyantjs/crm 0.1.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 (60) hide show
  1. package/LICENSE +109 -0
  2. package/README.md +47 -0
  3. package/dist/booking-extension.d.ts +123 -0
  4. package/dist/booking-extension.d.ts.map +1 -0
  5. package/dist/booking-extension.js +86 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +29 -0
  9. package/dist/routes/accounts.d.ts +1203 -0
  10. package/dist/routes/accounts.d.ts.map +1 -0
  11. package/dist/routes/accounts.js +226 -0
  12. package/dist/routes/activities.d.ts +299 -0
  13. package/dist/routes/activities.d.ts.map +1 -0
  14. package/dist/routes/activities.js +61 -0
  15. package/dist/routes/custom-fields.d.ts +256 -0
  16. package/dist/routes/custom-fields.d.ts.map +1 -0
  17. package/dist/routes/custom-fields.js +46 -0
  18. package/dist/routes/index.d.ts +2671 -0
  19. package/dist/routes/index.d.ts.map +1 -0
  20. package/dist/routes/index.js +14 -0
  21. package/dist/routes/opportunities.d.ts +387 -0
  22. package/dist/routes/opportunities.d.ts.map +1 -0
  23. package/dist/routes/opportunities.js +69 -0
  24. package/dist/routes/pipelines.d.ts +292 -0
  25. package/dist/routes/pipelines.d.ts.map +1 -0
  26. package/dist/routes/pipelines.js +58 -0
  27. package/dist/routes/quotes.d.ts +283 -0
  28. package/dist/routes/quotes.d.ts.map +1 -0
  29. package/dist/routes/quotes.js +51 -0
  30. package/dist/schema.d.ts +3478 -0
  31. package/dist/schema.d.ts.map +1 -0
  32. package/dist/schema.js +515 -0
  33. package/dist/service/accounts.d.ts +982 -0
  34. package/dist/service/accounts.d.ts.map +1 -0
  35. package/dist/service/accounts.js +509 -0
  36. package/dist/service/activities.d.ts +486 -0
  37. package/dist/service/activities.d.ts.map +1 -0
  38. package/dist/service/activities.js +114 -0
  39. package/dist/service/custom-fields.d.ts +118 -0
  40. package/dist/service/custom-fields.d.ts.map +1 -0
  41. package/dist/service/custom-fields.js +88 -0
  42. package/dist/service/helpers.d.ts +22 -0
  43. package/dist/service/helpers.d.ts.map +1 -0
  44. package/dist/service/helpers.js +39 -0
  45. package/dist/service/index.d.ts +3329 -0
  46. package/dist/service/index.d.ts.map +1 -0
  47. package/dist/service/index.js +14 -0
  48. package/dist/service/opportunities.d.ts +822 -0
  49. package/dist/service/opportunities.d.ts.map +1 -0
  50. package/dist/service/opportunities.js +117 -0
  51. package/dist/service/pipelines.d.ts +113 -0
  52. package/dist/service/pipelines.d.ts.map +1 -0
  53. package/dist/service/pipelines.js +68 -0
  54. package/dist/service/quotes.d.ts +494 -0
  55. package/dist/service/quotes.d.ts.map +1 -0
  56. package/dist/service/quotes.js +69 -0
  57. package/dist/validation.d.ts +860 -0
  58. package/dist/validation.d.ts.map +1 -0
  59. package/dist/validation.js +315 -0
  60. package/package.json +56 -0
@@ -0,0 +1,2671 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ type Env = {
3
+ Variables: {
4
+ db: PostgresJsDatabase;
5
+ userId?: string;
6
+ };
7
+ };
8
+ export declare const crmRoutes: import("hono/hono-base").HonoBase<Env, import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<{
9
+ "/organizations": {
10
+ $get: {
11
+ input: {};
12
+ output: {
13
+ data: {
14
+ id: string;
15
+ name: string;
16
+ legalName: string | null;
17
+ website: string | null;
18
+ industry: string | null;
19
+ relation: "partner" | "supplier" | "other" | "client" | null;
20
+ ownerId: string | null;
21
+ defaultCurrency: string | null;
22
+ preferredLanguage: string | null;
23
+ paymentTerms: number | null;
24
+ status: "active" | "inactive" | "archived";
25
+ source: string | null;
26
+ sourceRef: string | null;
27
+ tags: string[];
28
+ notes: string | null;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ archivedAt: string | null;
32
+ }[];
33
+ total: number;
34
+ limit: number;
35
+ offset: number;
36
+ };
37
+ outputFormat: "json";
38
+ status: import("hono/utils/http-status").ContentfulStatusCode;
39
+ };
40
+ };
41
+ } & {
42
+ "/organizations": {
43
+ $post: {
44
+ input: {};
45
+ output: {
46
+ data: {
47
+ relation: "partner" | "supplier" | "other" | "client" | null;
48
+ name: string;
49
+ createdAt: string;
50
+ updatedAt: string;
51
+ website: string | null;
52
+ notes: string | null;
53
+ id: string;
54
+ legalName: string | null;
55
+ industry: string | null;
56
+ ownerId: string | null;
57
+ defaultCurrency: string | null;
58
+ preferredLanguage: string | null;
59
+ paymentTerms: number | null;
60
+ status: "active" | "inactive" | "archived";
61
+ source: string | null;
62
+ sourceRef: string | null;
63
+ tags: string[];
64
+ archivedAt: string | null;
65
+ } | undefined;
66
+ };
67
+ outputFormat: "json";
68
+ status: 201;
69
+ };
70
+ };
71
+ } & {
72
+ "/organizations/:id": {
73
+ $get: {
74
+ input: {
75
+ param: {
76
+ id: string;
77
+ };
78
+ };
79
+ output: {
80
+ error: string;
81
+ };
82
+ outputFormat: "json";
83
+ status: 404;
84
+ } | {
85
+ input: {
86
+ param: {
87
+ id: string;
88
+ };
89
+ };
90
+ output: {
91
+ data: {
92
+ id: string;
93
+ name: string;
94
+ legalName: string | null;
95
+ website: string | null;
96
+ industry: string | null;
97
+ relation: "partner" | "supplier" | "other" | "client" | null;
98
+ ownerId: string | null;
99
+ defaultCurrency: string | null;
100
+ preferredLanguage: string | null;
101
+ paymentTerms: number | null;
102
+ status: "active" | "inactive" | "archived";
103
+ source: string | null;
104
+ sourceRef: string | null;
105
+ tags: string[];
106
+ notes: string | null;
107
+ createdAt: string;
108
+ updatedAt: string;
109
+ archivedAt: string | null;
110
+ };
111
+ };
112
+ outputFormat: "json";
113
+ status: import("hono/utils/http-status").ContentfulStatusCode;
114
+ };
115
+ };
116
+ } & {
117
+ "/organizations/:id": {
118
+ $patch: {
119
+ input: {
120
+ param: {
121
+ id: string;
122
+ };
123
+ };
124
+ output: {
125
+ error: string;
126
+ };
127
+ outputFormat: "json";
128
+ status: 404;
129
+ } | {
130
+ input: {
131
+ param: {
132
+ id: string;
133
+ };
134
+ };
135
+ output: {
136
+ data: {
137
+ id: string;
138
+ name: string;
139
+ legalName: string | null;
140
+ website: string | null;
141
+ industry: string | null;
142
+ relation: "partner" | "supplier" | "other" | "client" | null;
143
+ ownerId: string | null;
144
+ defaultCurrency: string | null;
145
+ preferredLanguage: string | null;
146
+ paymentTerms: number | null;
147
+ status: "active" | "inactive" | "archived";
148
+ source: string | null;
149
+ sourceRef: string | null;
150
+ tags: string[];
151
+ notes: string | null;
152
+ createdAt: string;
153
+ updatedAt: string;
154
+ archivedAt: string | null;
155
+ };
156
+ };
157
+ outputFormat: "json";
158
+ status: import("hono/utils/http-status").ContentfulStatusCode;
159
+ };
160
+ };
161
+ } & {
162
+ "/organizations/:id": {
163
+ $delete: {
164
+ input: {
165
+ param: {
166
+ id: string;
167
+ };
168
+ };
169
+ output: {
170
+ error: string;
171
+ };
172
+ outputFormat: "json";
173
+ status: 404;
174
+ } | {
175
+ input: {
176
+ param: {
177
+ id: string;
178
+ };
179
+ };
180
+ output: {
181
+ success: true;
182
+ };
183
+ outputFormat: "json";
184
+ status: import("hono/utils/http-status").ContentfulStatusCode;
185
+ };
186
+ };
187
+ } & {
188
+ "/organizations/:id/contact-methods": {
189
+ $get: {
190
+ input: {
191
+ param: {
192
+ id: string;
193
+ };
194
+ };
195
+ output: {
196
+ data: {
197
+ id: string;
198
+ entityType: string;
199
+ entityId: string;
200
+ kind: "email" | "phone" | "mobile" | "whatsapp" | "website" | "sms" | "fax" | "social" | "other";
201
+ label: string | null;
202
+ value: string;
203
+ normalizedValue: string | null;
204
+ isPrimary: boolean;
205
+ notes: string | null;
206
+ metadata: {
207
+ [x: string]: import("hono/utils/types").JSONValue;
208
+ } | null;
209
+ createdAt: string;
210
+ updatedAt: string;
211
+ }[];
212
+ };
213
+ outputFormat: "json";
214
+ status: import("hono/utils/http-status").ContentfulStatusCode;
215
+ };
216
+ };
217
+ } & {
218
+ "/organizations/:id/contact-methods": {
219
+ $post: {
220
+ input: {
221
+ param: {
222
+ id: string;
223
+ };
224
+ };
225
+ output: {
226
+ data: {
227
+ value: string;
228
+ createdAt: string;
229
+ updatedAt: string;
230
+ kind: "email" | "phone" | "mobile" | "whatsapp" | "website" | "sms" | "fax" | "social" | "other";
231
+ entityType: string;
232
+ entityId: string;
233
+ label: string | null;
234
+ normalizedValue: string | null;
235
+ isPrimary: boolean;
236
+ notes: string | null;
237
+ metadata: {
238
+ [x: string]: import("hono/utils/types").JSONValue;
239
+ } | null;
240
+ id: string;
241
+ } | null;
242
+ };
243
+ outputFormat: "json";
244
+ status: 201;
245
+ };
246
+ };
247
+ } & {
248
+ "/organizations/:id/addresses": {
249
+ $get: {
250
+ input: {
251
+ param: {
252
+ id: string;
253
+ };
254
+ };
255
+ output: {
256
+ data: {
257
+ id: string;
258
+ entityType: string;
259
+ entityId: string;
260
+ label: "primary" | "other" | "billing" | "shipping" | "mailing" | "meeting" | "service" | "legal";
261
+ fullText: string | null;
262
+ line1: string | null;
263
+ line2: string | null;
264
+ city: string | null;
265
+ region: string | null;
266
+ postalCode: string | null;
267
+ country: string | null;
268
+ latitude: number | null;
269
+ longitude: number | null;
270
+ timezone: string | null;
271
+ isPrimary: boolean;
272
+ notes: string | null;
273
+ metadata: {
274
+ [x: string]: import("hono/utils/types").JSONValue;
275
+ } | null;
276
+ createdAt: string;
277
+ updatedAt: string;
278
+ }[];
279
+ };
280
+ outputFormat: "json";
281
+ status: import("hono/utils/http-status").ContentfulStatusCode;
282
+ };
283
+ };
284
+ } & {
285
+ "/organizations/:id/addresses": {
286
+ $post: {
287
+ input: {
288
+ param: {
289
+ id: string;
290
+ };
291
+ };
292
+ output: {
293
+ data: {
294
+ createdAt: string;
295
+ updatedAt: string;
296
+ entityType: string;
297
+ entityId: string;
298
+ label: "primary" | "other" | "billing" | "shipping" | "mailing" | "meeting" | "service" | "legal";
299
+ isPrimary: boolean;
300
+ notes: string | null;
301
+ metadata: {
302
+ [x: string]: import("hono/utils/types").JSONValue;
303
+ } | null;
304
+ fullText: string | null;
305
+ line1: string | null;
306
+ line2: string | null;
307
+ city: string | null;
308
+ region: string | null;
309
+ postalCode: string | null;
310
+ country: string | null;
311
+ latitude: number | null;
312
+ longitude: number | null;
313
+ timezone: string | null;
314
+ id: string;
315
+ } | null;
316
+ };
317
+ outputFormat: "json";
318
+ status: 201;
319
+ };
320
+ };
321
+ } & {
322
+ "/organizations/:id/notes": {
323
+ $get: {
324
+ input: {
325
+ param: {
326
+ id: string;
327
+ };
328
+ };
329
+ output: {
330
+ data: {
331
+ id: string;
332
+ organizationId: string;
333
+ authorId: string;
334
+ content: string;
335
+ createdAt: string;
336
+ }[];
337
+ };
338
+ outputFormat: "json";
339
+ status: import("hono/utils/http-status").ContentfulStatusCode;
340
+ };
341
+ };
342
+ } & {
343
+ "/organizations/:id/notes": {
344
+ $post: {
345
+ input: {
346
+ param: {
347
+ id: string;
348
+ };
349
+ };
350
+ output: {
351
+ error: string;
352
+ };
353
+ outputFormat: "json";
354
+ status: 400;
355
+ } | {
356
+ input: {
357
+ param: {
358
+ id: string;
359
+ };
360
+ };
361
+ output: {
362
+ error: string;
363
+ };
364
+ outputFormat: "json";
365
+ status: 404;
366
+ } | {
367
+ input: {
368
+ param: {
369
+ id: string;
370
+ };
371
+ };
372
+ output: {
373
+ data: {
374
+ createdAt: string;
375
+ id: string;
376
+ organizationId: string;
377
+ authorId: string;
378
+ content: string;
379
+ };
380
+ };
381
+ outputFormat: "json";
382
+ status: 201;
383
+ };
384
+ };
385
+ } & {
386
+ "/organization-notes/:id": {
387
+ $patch: {
388
+ input: {
389
+ param: {
390
+ id: string;
391
+ };
392
+ };
393
+ output: {
394
+ error: string;
395
+ };
396
+ outputFormat: "json";
397
+ status: 404;
398
+ } | {
399
+ input: {
400
+ param: {
401
+ id: string;
402
+ };
403
+ };
404
+ output: {
405
+ data: {
406
+ id: string;
407
+ organizationId: string;
408
+ authorId: string;
409
+ content: string;
410
+ createdAt: string;
411
+ };
412
+ };
413
+ outputFormat: "json";
414
+ status: import("hono/utils/http-status").ContentfulStatusCode;
415
+ };
416
+ };
417
+ } & {
418
+ "/organization-notes/:id": {
419
+ $delete: {
420
+ input: {
421
+ param: {
422
+ id: string;
423
+ };
424
+ };
425
+ output: {
426
+ error: string;
427
+ };
428
+ outputFormat: "json";
429
+ status: 404;
430
+ } | {
431
+ input: {
432
+ param: {
433
+ id: string;
434
+ };
435
+ };
436
+ output: {
437
+ success: true;
438
+ };
439
+ outputFormat: "json";
440
+ status: import("hono/utils/http-status").ContentfulStatusCode;
441
+ };
442
+ };
443
+ } & {
444
+ "/people": {
445
+ $get: {
446
+ input: {};
447
+ output: {
448
+ data: {
449
+ id: string;
450
+ organizationId: string | null;
451
+ firstName: string;
452
+ lastName: string;
453
+ jobTitle: string | null;
454
+ relation: "partner" | "supplier" | "other" | "client" | null;
455
+ preferredLanguage: string | null;
456
+ preferredCurrency: string | null;
457
+ ownerId: string | null;
458
+ status: "active" | "inactive" | "archived";
459
+ source: string | null;
460
+ sourceRef: string | null;
461
+ tags: string[];
462
+ birthday: string | null;
463
+ notes: string | null;
464
+ createdAt: string;
465
+ updatedAt: string;
466
+ archivedAt: string | null;
467
+ email: string | null;
468
+ phone: string | null;
469
+ website: string | null;
470
+ address: string | null;
471
+ city: string | null;
472
+ country: string | null;
473
+ }[];
474
+ total: number;
475
+ limit: number;
476
+ offset: number;
477
+ };
478
+ outputFormat: "json";
479
+ status: import("hono/utils/http-status").ContentfulStatusCode;
480
+ };
481
+ };
482
+ } & {
483
+ "/people": {
484
+ $post: {
485
+ input: {};
486
+ output: {
487
+ data: {
488
+ id: string;
489
+ organizationId: string | null;
490
+ firstName: string;
491
+ lastName: string;
492
+ jobTitle: string | null;
493
+ relation: "partner" | "supplier" | "other" | "client" | null;
494
+ preferredLanguage: string | null;
495
+ preferredCurrency: string | null;
496
+ ownerId: string | null;
497
+ status: "active" | "inactive" | "archived";
498
+ source: string | null;
499
+ sourceRef: string | null;
500
+ tags: string[];
501
+ birthday: string | null;
502
+ notes: string | null;
503
+ createdAt: string;
504
+ updatedAt: string;
505
+ archivedAt: string | null;
506
+ email: string | null;
507
+ phone: string | null;
508
+ website: string | null;
509
+ address: string | null;
510
+ city: string | null;
511
+ country: string | null;
512
+ } | null;
513
+ };
514
+ outputFormat: "json";
515
+ status: 201;
516
+ };
517
+ };
518
+ } & {
519
+ "/people/:id": {
520
+ $get: {
521
+ input: {
522
+ param: {
523
+ id: string;
524
+ };
525
+ };
526
+ output: {
527
+ error: string;
528
+ };
529
+ outputFormat: "json";
530
+ status: 404;
531
+ } | {
532
+ input: {
533
+ param: {
534
+ id: string;
535
+ };
536
+ };
537
+ output: {
538
+ data: {
539
+ id: string;
540
+ organizationId: string | null;
541
+ firstName: string;
542
+ lastName: string;
543
+ jobTitle: string | null;
544
+ relation: "partner" | "supplier" | "other" | "client" | null;
545
+ preferredLanguage: string | null;
546
+ preferredCurrency: string | null;
547
+ ownerId: string | null;
548
+ status: "active" | "inactive" | "archived";
549
+ source: string | null;
550
+ sourceRef: string | null;
551
+ tags: string[];
552
+ birthday: string | null;
553
+ notes: string | null;
554
+ createdAt: string;
555
+ updatedAt: string;
556
+ archivedAt: string | null;
557
+ email: string | null;
558
+ phone: string | null;
559
+ website: string | null;
560
+ address: string | null;
561
+ city: string | null;
562
+ country: string | null;
563
+ };
564
+ };
565
+ outputFormat: "json";
566
+ status: import("hono/utils/http-status").ContentfulStatusCode;
567
+ };
568
+ };
569
+ } & {
570
+ "/people/:id": {
571
+ $patch: {
572
+ input: {
573
+ param: {
574
+ id: string;
575
+ };
576
+ };
577
+ output: {
578
+ error: string;
579
+ };
580
+ outputFormat: "json";
581
+ status: 404;
582
+ } | {
583
+ input: {
584
+ param: {
585
+ id: string;
586
+ };
587
+ };
588
+ output: {
589
+ data: {
590
+ id: string;
591
+ organizationId: string | null;
592
+ firstName: string;
593
+ lastName: string;
594
+ jobTitle: string | null;
595
+ relation: "partner" | "supplier" | "other" | "client" | null;
596
+ preferredLanguage: string | null;
597
+ preferredCurrency: string | null;
598
+ ownerId: string | null;
599
+ status: "active" | "inactive" | "archived";
600
+ source: string | null;
601
+ sourceRef: string | null;
602
+ tags: string[];
603
+ birthday: string | null;
604
+ notes: string | null;
605
+ createdAt: string;
606
+ updatedAt: string;
607
+ archivedAt: string | null;
608
+ email: string | null;
609
+ phone: string | null;
610
+ website: string | null;
611
+ address: string | null;
612
+ city: string | null;
613
+ country: string | null;
614
+ };
615
+ };
616
+ outputFormat: "json";
617
+ status: import("hono/utils/http-status").ContentfulStatusCode;
618
+ };
619
+ };
620
+ } & {
621
+ "/people/:id": {
622
+ $delete: {
623
+ input: {
624
+ param: {
625
+ id: string;
626
+ };
627
+ };
628
+ output: {
629
+ error: string;
630
+ };
631
+ outputFormat: "json";
632
+ status: 404;
633
+ } | {
634
+ input: {
635
+ param: {
636
+ id: string;
637
+ };
638
+ };
639
+ output: {
640
+ success: true;
641
+ };
642
+ outputFormat: "json";
643
+ status: import("hono/utils/http-status").ContentfulStatusCode;
644
+ };
645
+ };
646
+ } & {
647
+ "/people/:id/contact-methods": {
648
+ $get: {
649
+ input: {
650
+ param: {
651
+ id: string;
652
+ };
653
+ };
654
+ output: {
655
+ data: {
656
+ id: string;
657
+ entityType: string;
658
+ entityId: string;
659
+ kind: "email" | "phone" | "mobile" | "whatsapp" | "website" | "sms" | "fax" | "social" | "other";
660
+ label: string | null;
661
+ value: string;
662
+ normalizedValue: string | null;
663
+ isPrimary: boolean;
664
+ notes: string | null;
665
+ metadata: {
666
+ [x: string]: import("hono/utils/types").JSONValue;
667
+ } | null;
668
+ createdAt: string;
669
+ updatedAt: string;
670
+ }[];
671
+ };
672
+ outputFormat: "json";
673
+ status: import("hono/utils/http-status").ContentfulStatusCode;
674
+ };
675
+ };
676
+ } & {
677
+ "/people/:id/contact-methods": {
678
+ $post: {
679
+ input: {
680
+ param: {
681
+ id: string;
682
+ };
683
+ };
684
+ output: {
685
+ data: {
686
+ value: string;
687
+ createdAt: string;
688
+ updatedAt: string;
689
+ kind: "email" | "phone" | "mobile" | "whatsapp" | "website" | "sms" | "fax" | "social" | "other";
690
+ entityType: string;
691
+ entityId: string;
692
+ label: string | null;
693
+ normalizedValue: string | null;
694
+ isPrimary: boolean;
695
+ notes: string | null;
696
+ metadata: {
697
+ [x: string]: import("hono/utils/types").JSONValue;
698
+ } | null;
699
+ id: string;
700
+ } | null;
701
+ };
702
+ outputFormat: "json";
703
+ status: 201;
704
+ };
705
+ };
706
+ } & {
707
+ "/people/:id/addresses": {
708
+ $get: {
709
+ input: {
710
+ param: {
711
+ id: string;
712
+ };
713
+ };
714
+ output: {
715
+ data: {
716
+ id: string;
717
+ entityType: string;
718
+ entityId: string;
719
+ label: "primary" | "other" | "billing" | "shipping" | "mailing" | "meeting" | "service" | "legal";
720
+ fullText: string | null;
721
+ line1: string | null;
722
+ line2: string | null;
723
+ city: string | null;
724
+ region: string | null;
725
+ postalCode: string | null;
726
+ country: string | null;
727
+ latitude: number | null;
728
+ longitude: number | null;
729
+ timezone: string | null;
730
+ isPrimary: boolean;
731
+ notes: string | null;
732
+ metadata: {
733
+ [x: string]: import("hono/utils/types").JSONValue;
734
+ } | null;
735
+ createdAt: string;
736
+ updatedAt: string;
737
+ }[];
738
+ };
739
+ outputFormat: "json";
740
+ status: import("hono/utils/http-status").ContentfulStatusCode;
741
+ };
742
+ };
743
+ } & {
744
+ "/people/:id/addresses": {
745
+ $post: {
746
+ input: {
747
+ param: {
748
+ id: string;
749
+ };
750
+ };
751
+ output: {
752
+ data: {
753
+ createdAt: string;
754
+ updatedAt: string;
755
+ entityType: string;
756
+ entityId: string;
757
+ label: "primary" | "other" | "billing" | "shipping" | "mailing" | "meeting" | "service" | "legal";
758
+ isPrimary: boolean;
759
+ notes: string | null;
760
+ metadata: {
761
+ [x: string]: import("hono/utils/types").JSONValue;
762
+ } | null;
763
+ fullText: string | null;
764
+ line1: string | null;
765
+ line2: string | null;
766
+ city: string | null;
767
+ region: string | null;
768
+ postalCode: string | null;
769
+ country: string | null;
770
+ latitude: number | null;
771
+ longitude: number | null;
772
+ timezone: string | null;
773
+ id: string;
774
+ } | null;
775
+ };
776
+ outputFormat: "json";
777
+ status: 201;
778
+ };
779
+ };
780
+ } & {
781
+ "/people/:id/notes": {
782
+ $get: {
783
+ input: {
784
+ param: {
785
+ id: string;
786
+ };
787
+ };
788
+ output: {
789
+ data: {
790
+ id: string;
791
+ personId: string;
792
+ authorId: string;
793
+ content: string;
794
+ createdAt: string;
795
+ }[];
796
+ };
797
+ outputFormat: "json";
798
+ status: import("hono/utils/http-status").ContentfulStatusCode;
799
+ };
800
+ };
801
+ } & {
802
+ "/people/:id/notes": {
803
+ $post: {
804
+ input: {
805
+ param: {
806
+ id: string;
807
+ };
808
+ };
809
+ output: {
810
+ error: string;
811
+ };
812
+ outputFormat: "json";
813
+ status: 400;
814
+ } | {
815
+ input: {
816
+ param: {
817
+ id: string;
818
+ };
819
+ };
820
+ output: {
821
+ error: string;
822
+ };
823
+ outputFormat: "json";
824
+ status: 404;
825
+ } | {
826
+ input: {
827
+ param: {
828
+ id: string;
829
+ };
830
+ };
831
+ output: {
832
+ data: {
833
+ createdAt: string;
834
+ id: string;
835
+ personId: string;
836
+ authorId: string;
837
+ content: string;
838
+ };
839
+ };
840
+ outputFormat: "json";
841
+ status: 201;
842
+ };
843
+ };
844
+ } & {
845
+ "/person-notes/:id": {
846
+ $patch: {
847
+ input: {
848
+ param: {
849
+ id: string;
850
+ };
851
+ };
852
+ output: {
853
+ error: string;
854
+ };
855
+ outputFormat: "json";
856
+ status: 404;
857
+ } | {
858
+ input: {
859
+ param: {
860
+ id: string;
861
+ };
862
+ };
863
+ output: {
864
+ data: {
865
+ id: string;
866
+ personId: string;
867
+ authorId: string;
868
+ content: string;
869
+ createdAt: string;
870
+ };
871
+ };
872
+ outputFormat: "json";
873
+ status: import("hono/utils/http-status").ContentfulStatusCode;
874
+ };
875
+ };
876
+ } & {
877
+ "/person-notes/:id": {
878
+ $delete: {
879
+ input: {
880
+ param: {
881
+ id: string;
882
+ };
883
+ };
884
+ output: {
885
+ error: string;
886
+ };
887
+ outputFormat: "json";
888
+ status: 404;
889
+ } | {
890
+ input: {
891
+ param: {
892
+ id: string;
893
+ };
894
+ };
895
+ output: {
896
+ success: true;
897
+ };
898
+ outputFormat: "json";
899
+ status: import("hono/utils/http-status").ContentfulStatusCode;
900
+ };
901
+ };
902
+ } & {
903
+ "/people/:id/communications": {
904
+ $get: {
905
+ input: {
906
+ param: {
907
+ id: string;
908
+ };
909
+ };
910
+ output: {
911
+ data: {
912
+ id: string;
913
+ personId: string;
914
+ organizationId: string | null;
915
+ channel: "email" | "phone" | "whatsapp" | "sms" | "other" | "meeting";
916
+ direction: "inbound" | "outbound";
917
+ subject: string | null;
918
+ content: string | null;
919
+ sentAt: string | null;
920
+ createdAt: string;
921
+ }[];
922
+ };
923
+ outputFormat: "json";
924
+ status: import("hono/utils/http-status").ContentfulStatusCode;
925
+ };
926
+ };
927
+ } & {
928
+ "/people/:id/communications": {
929
+ $post: {
930
+ input: {
931
+ param: {
932
+ id: string;
933
+ };
934
+ };
935
+ output: {
936
+ error: string;
937
+ };
938
+ outputFormat: "json";
939
+ status: 404;
940
+ } | {
941
+ input: {
942
+ param: {
943
+ id: string;
944
+ };
945
+ };
946
+ output: {
947
+ data: {
948
+ createdAt: string;
949
+ id: string;
950
+ organizationId: string | null;
951
+ personId: string;
952
+ subject: string | null;
953
+ content: string | null;
954
+ channel: "email" | "phone" | "whatsapp" | "sms" | "other" | "meeting";
955
+ direction: "inbound" | "outbound";
956
+ sentAt: string | null;
957
+ };
958
+ };
959
+ outputFormat: "json";
960
+ status: 201;
961
+ };
962
+ };
963
+ } & {
964
+ "/segments": {
965
+ $get: {
966
+ input: {};
967
+ output: {
968
+ data: {
969
+ id: string;
970
+ name: string;
971
+ description: string | null;
972
+ conditions: {
973
+ [x: string]: import("hono/utils/types").JSONValue;
974
+ } | null;
975
+ createdAt: string;
976
+ updatedAt: string;
977
+ }[];
978
+ };
979
+ outputFormat: "json";
980
+ status: import("hono/utils/http-status").ContentfulStatusCode;
981
+ };
982
+ };
983
+ } & {
984
+ "/segments": {
985
+ $post: {
986
+ input: {};
987
+ output: {
988
+ data: {
989
+ name: string;
990
+ createdAt: string;
991
+ updatedAt: string;
992
+ description: string | null;
993
+ id: string;
994
+ conditions: {
995
+ [x: string]: import("hono/utils/types").JSONValue;
996
+ } | null;
997
+ } | undefined;
998
+ };
999
+ outputFormat: "json";
1000
+ status: 201;
1001
+ };
1002
+ };
1003
+ } & {
1004
+ "/segments/:segmentId": {
1005
+ $delete: {
1006
+ input: {
1007
+ param: {
1008
+ segmentId: string;
1009
+ };
1010
+ };
1011
+ output: {
1012
+ error: string;
1013
+ };
1014
+ outputFormat: "json";
1015
+ status: 404;
1016
+ } | {
1017
+ input: {
1018
+ param: {
1019
+ segmentId: string;
1020
+ };
1021
+ };
1022
+ output: {
1023
+ success: true;
1024
+ };
1025
+ outputFormat: "json";
1026
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1027
+ };
1028
+ };
1029
+ } & {
1030
+ "/people/export": {
1031
+ $post: {
1032
+ input: {};
1033
+ output: {};
1034
+ outputFormat: string;
1035
+ status: import("hono/utils/http-status").StatusCode;
1036
+ };
1037
+ };
1038
+ } & {
1039
+ "/people/import": {
1040
+ $post: {
1041
+ input: {};
1042
+ output: {
1043
+ error: "CSV must have a header row and at least one data row" | undefined;
1044
+ };
1045
+ outputFormat: "json";
1046
+ status: 400;
1047
+ } | {
1048
+ input: {};
1049
+ output: {
1050
+ imported: number;
1051
+ errors: {
1052
+ row: number;
1053
+ error: string;
1054
+ }[];
1055
+ };
1056
+ outputFormat: "json";
1057
+ status: 200;
1058
+ };
1059
+ };
1060
+ } & {
1061
+ "/contact-methods/:id": {
1062
+ $patch: {
1063
+ input: {
1064
+ param: {
1065
+ id: string;
1066
+ };
1067
+ };
1068
+ output: {
1069
+ error: string;
1070
+ };
1071
+ outputFormat: "json";
1072
+ status: 404;
1073
+ } | {
1074
+ input: {
1075
+ param: {
1076
+ id: string;
1077
+ };
1078
+ };
1079
+ output: {
1080
+ data: {
1081
+ id: string;
1082
+ entityType: string;
1083
+ entityId: string;
1084
+ kind: "email" | "phone" | "mobile" | "whatsapp" | "website" | "sms" | "fax" | "social" | "other";
1085
+ label: string | null;
1086
+ value: string;
1087
+ normalizedValue: string | null;
1088
+ isPrimary: boolean;
1089
+ notes: string | null;
1090
+ metadata: {
1091
+ [x: string]: import("hono/utils/types").JSONValue;
1092
+ } | null;
1093
+ createdAt: string;
1094
+ updatedAt: string;
1095
+ };
1096
+ };
1097
+ outputFormat: "json";
1098
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1099
+ };
1100
+ };
1101
+ } & {
1102
+ "/contact-methods/:id": {
1103
+ $delete: {
1104
+ input: {
1105
+ param: {
1106
+ id: string;
1107
+ };
1108
+ };
1109
+ output: {
1110
+ error: string;
1111
+ };
1112
+ outputFormat: "json";
1113
+ status: 404;
1114
+ } | {
1115
+ input: {
1116
+ param: {
1117
+ id: string;
1118
+ };
1119
+ };
1120
+ output: {
1121
+ success: true;
1122
+ };
1123
+ outputFormat: "json";
1124
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1125
+ };
1126
+ };
1127
+ } & {
1128
+ "/addresses/:id": {
1129
+ $patch: {
1130
+ input: {
1131
+ param: {
1132
+ id: string;
1133
+ };
1134
+ };
1135
+ output: {
1136
+ error: string;
1137
+ };
1138
+ outputFormat: "json";
1139
+ status: 404;
1140
+ } | {
1141
+ input: {
1142
+ param: {
1143
+ id: string;
1144
+ };
1145
+ };
1146
+ output: {
1147
+ data: {
1148
+ id: string;
1149
+ entityType: string;
1150
+ entityId: string;
1151
+ label: "primary" | "other" | "billing" | "shipping" | "mailing" | "meeting" | "service" | "legal";
1152
+ fullText: string | null;
1153
+ line1: string | null;
1154
+ line2: string | null;
1155
+ city: string | null;
1156
+ region: string | null;
1157
+ postalCode: string | null;
1158
+ country: string | null;
1159
+ latitude: number | null;
1160
+ longitude: number | null;
1161
+ timezone: string | null;
1162
+ isPrimary: boolean;
1163
+ notes: string | null;
1164
+ metadata: {
1165
+ [x: string]: import("hono/utils/types").JSONValue;
1166
+ } | null;
1167
+ createdAt: string;
1168
+ updatedAt: string;
1169
+ };
1170
+ };
1171
+ outputFormat: "json";
1172
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1173
+ };
1174
+ };
1175
+ } & {
1176
+ "/addresses/:id": {
1177
+ $delete: {
1178
+ input: {
1179
+ param: {
1180
+ id: string;
1181
+ };
1182
+ };
1183
+ output: {
1184
+ error: string;
1185
+ };
1186
+ outputFormat: "json";
1187
+ status: 404;
1188
+ } | {
1189
+ input: {
1190
+ param: {
1191
+ id: string;
1192
+ };
1193
+ };
1194
+ output: {
1195
+ success: true;
1196
+ };
1197
+ outputFormat: "json";
1198
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1199
+ };
1200
+ };
1201
+ }, "/"> | import("hono/types").MergeSchemaPath<{
1202
+ "/pipelines": {
1203
+ $get: {
1204
+ input: {};
1205
+ output: {
1206
+ data: {
1207
+ id: string;
1208
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
1209
+ name: string;
1210
+ isDefault: boolean;
1211
+ sortOrder: number;
1212
+ createdAt: string;
1213
+ updatedAt: string;
1214
+ }[];
1215
+ total: number;
1216
+ limit: number;
1217
+ offset: number;
1218
+ };
1219
+ outputFormat: "json";
1220
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1221
+ };
1222
+ };
1223
+ } & {
1224
+ "/pipelines": {
1225
+ $post: {
1226
+ input: {};
1227
+ output: {
1228
+ data: {
1229
+ name: string;
1230
+ createdAt: string;
1231
+ updatedAt: string;
1232
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
1233
+ id: string;
1234
+ isDefault: boolean;
1235
+ sortOrder: number;
1236
+ } | undefined;
1237
+ };
1238
+ outputFormat: "json";
1239
+ status: 201;
1240
+ };
1241
+ };
1242
+ } & {
1243
+ "/pipelines/:id": {
1244
+ $get: {
1245
+ input: {
1246
+ param: {
1247
+ id: string;
1248
+ };
1249
+ };
1250
+ output: {
1251
+ error: string;
1252
+ };
1253
+ outputFormat: "json";
1254
+ status: 404;
1255
+ } | {
1256
+ input: {
1257
+ param: {
1258
+ id: string;
1259
+ };
1260
+ };
1261
+ output: {
1262
+ data: {
1263
+ id: string;
1264
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
1265
+ name: string;
1266
+ isDefault: boolean;
1267
+ sortOrder: number;
1268
+ createdAt: string;
1269
+ updatedAt: string;
1270
+ };
1271
+ };
1272
+ outputFormat: "json";
1273
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1274
+ };
1275
+ };
1276
+ } & {
1277
+ "/pipelines/:id": {
1278
+ $patch: {
1279
+ input: {
1280
+ param: {
1281
+ id: string;
1282
+ };
1283
+ };
1284
+ output: {
1285
+ error: string;
1286
+ };
1287
+ outputFormat: "json";
1288
+ status: 404;
1289
+ } | {
1290
+ input: {
1291
+ param: {
1292
+ id: string;
1293
+ };
1294
+ };
1295
+ output: {
1296
+ data: {
1297
+ id: string;
1298
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
1299
+ name: string;
1300
+ isDefault: boolean;
1301
+ sortOrder: number;
1302
+ createdAt: string;
1303
+ updatedAt: string;
1304
+ };
1305
+ };
1306
+ outputFormat: "json";
1307
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1308
+ };
1309
+ };
1310
+ } & {
1311
+ "/pipelines/:id": {
1312
+ $delete: {
1313
+ input: {
1314
+ param: {
1315
+ id: string;
1316
+ };
1317
+ };
1318
+ output: {
1319
+ error: string;
1320
+ };
1321
+ outputFormat: "json";
1322
+ status: 404;
1323
+ } | {
1324
+ input: {
1325
+ param: {
1326
+ id: string;
1327
+ };
1328
+ };
1329
+ output: {
1330
+ success: true;
1331
+ };
1332
+ outputFormat: "json";
1333
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1334
+ };
1335
+ };
1336
+ } & {
1337
+ "/stages": {
1338
+ $get: {
1339
+ input: {};
1340
+ output: {
1341
+ data: {
1342
+ id: string;
1343
+ pipelineId: string;
1344
+ name: string;
1345
+ sortOrder: number;
1346
+ probability: number | null;
1347
+ isClosed: boolean;
1348
+ isWon: boolean;
1349
+ isLost: boolean;
1350
+ createdAt: string;
1351
+ updatedAt: string;
1352
+ }[];
1353
+ total: number;
1354
+ limit: number;
1355
+ offset: number;
1356
+ };
1357
+ outputFormat: "json";
1358
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1359
+ };
1360
+ };
1361
+ } & {
1362
+ "/stages": {
1363
+ $post: {
1364
+ input: {};
1365
+ output: {
1366
+ data: {
1367
+ name: string;
1368
+ createdAt: string;
1369
+ updatedAt: string;
1370
+ id: string;
1371
+ sortOrder: number;
1372
+ pipelineId: string;
1373
+ probability: number | null;
1374
+ isClosed: boolean;
1375
+ isWon: boolean;
1376
+ isLost: boolean;
1377
+ } | undefined;
1378
+ };
1379
+ outputFormat: "json";
1380
+ status: 201;
1381
+ };
1382
+ };
1383
+ } & {
1384
+ "/stages/:id": {
1385
+ $get: {
1386
+ input: {
1387
+ param: {
1388
+ id: string;
1389
+ };
1390
+ };
1391
+ output: {
1392
+ error: string;
1393
+ };
1394
+ outputFormat: "json";
1395
+ status: 404;
1396
+ } | {
1397
+ input: {
1398
+ param: {
1399
+ id: string;
1400
+ };
1401
+ };
1402
+ output: {
1403
+ data: {
1404
+ id: string;
1405
+ pipelineId: string;
1406
+ name: string;
1407
+ sortOrder: number;
1408
+ probability: number | null;
1409
+ isClosed: boolean;
1410
+ isWon: boolean;
1411
+ isLost: boolean;
1412
+ createdAt: string;
1413
+ updatedAt: string;
1414
+ };
1415
+ };
1416
+ outputFormat: "json";
1417
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1418
+ };
1419
+ };
1420
+ } & {
1421
+ "/stages/:id": {
1422
+ $patch: {
1423
+ input: {
1424
+ param: {
1425
+ id: string;
1426
+ };
1427
+ };
1428
+ output: {
1429
+ error: string;
1430
+ };
1431
+ outputFormat: "json";
1432
+ status: 404;
1433
+ } | {
1434
+ input: {
1435
+ param: {
1436
+ id: string;
1437
+ };
1438
+ };
1439
+ output: {
1440
+ data: {
1441
+ id: string;
1442
+ pipelineId: string;
1443
+ name: string;
1444
+ sortOrder: number;
1445
+ probability: number | null;
1446
+ isClosed: boolean;
1447
+ isWon: boolean;
1448
+ isLost: boolean;
1449
+ createdAt: string;
1450
+ updatedAt: string;
1451
+ };
1452
+ };
1453
+ outputFormat: "json";
1454
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1455
+ };
1456
+ };
1457
+ } & {
1458
+ "/stages/:id": {
1459
+ $delete: {
1460
+ input: {
1461
+ param: {
1462
+ id: string;
1463
+ };
1464
+ };
1465
+ output: {
1466
+ error: string;
1467
+ };
1468
+ outputFormat: "json";
1469
+ status: 404;
1470
+ } | {
1471
+ input: {
1472
+ param: {
1473
+ id: string;
1474
+ };
1475
+ };
1476
+ output: {
1477
+ success: true;
1478
+ };
1479
+ outputFormat: "json";
1480
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1481
+ };
1482
+ };
1483
+ }, "/"> | import("hono/types").MergeSchemaPath<{
1484
+ "/opportunities": {
1485
+ $get: {
1486
+ input: {};
1487
+ output: {
1488
+ data: {
1489
+ id: string;
1490
+ title: string;
1491
+ personId: string | null;
1492
+ organizationId: string | null;
1493
+ pipelineId: string;
1494
+ stageId: string;
1495
+ ownerId: string | null;
1496
+ status: "archived" | "open" | "won" | "lost";
1497
+ valueAmountCents: number | null;
1498
+ valueCurrency: string | null;
1499
+ expectedCloseDate: string | null;
1500
+ source: string | null;
1501
+ sourceRef: string | null;
1502
+ lostReason: string | null;
1503
+ tags: string[];
1504
+ createdAt: string;
1505
+ updatedAt: string;
1506
+ stageChangedAt: string;
1507
+ closedAt: string | null;
1508
+ }[];
1509
+ total: number;
1510
+ limit: number;
1511
+ offset: number;
1512
+ };
1513
+ outputFormat: "json";
1514
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1515
+ };
1516
+ };
1517
+ } & {
1518
+ "/opportunities": {
1519
+ $post: {
1520
+ input: {};
1521
+ output: {
1522
+ data: {
1523
+ createdAt: string;
1524
+ updatedAt: string;
1525
+ title: string;
1526
+ id: string;
1527
+ ownerId: string | null;
1528
+ status: "archived" | "open" | "won" | "lost";
1529
+ source: string | null;
1530
+ sourceRef: string | null;
1531
+ tags: string[];
1532
+ organizationId: string | null;
1533
+ pipelineId: string;
1534
+ personId: string | null;
1535
+ stageId: string;
1536
+ valueAmountCents: number | null;
1537
+ valueCurrency: string | null;
1538
+ expectedCloseDate: string | null;
1539
+ lostReason: string | null;
1540
+ stageChangedAt: string;
1541
+ closedAt: string | null;
1542
+ } | undefined;
1543
+ };
1544
+ outputFormat: "json";
1545
+ status: 201;
1546
+ };
1547
+ };
1548
+ } & {
1549
+ "/opportunities/:id": {
1550
+ $get: {
1551
+ input: {
1552
+ param: {
1553
+ id: string;
1554
+ };
1555
+ };
1556
+ output: {
1557
+ error: string;
1558
+ };
1559
+ outputFormat: "json";
1560
+ status: 404;
1561
+ } | {
1562
+ input: {
1563
+ param: {
1564
+ id: string;
1565
+ };
1566
+ };
1567
+ output: {
1568
+ data: {
1569
+ id: string;
1570
+ title: string;
1571
+ personId: string | null;
1572
+ organizationId: string | null;
1573
+ pipelineId: string;
1574
+ stageId: string;
1575
+ ownerId: string | null;
1576
+ status: "archived" | "open" | "won" | "lost";
1577
+ valueAmountCents: number | null;
1578
+ valueCurrency: string | null;
1579
+ expectedCloseDate: string | null;
1580
+ source: string | null;
1581
+ sourceRef: string | null;
1582
+ lostReason: string | null;
1583
+ tags: string[];
1584
+ createdAt: string;
1585
+ updatedAt: string;
1586
+ stageChangedAt: string;
1587
+ closedAt: string | null;
1588
+ };
1589
+ };
1590
+ outputFormat: "json";
1591
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1592
+ };
1593
+ };
1594
+ } & {
1595
+ "/opportunities/:id": {
1596
+ $patch: {
1597
+ input: {
1598
+ param: {
1599
+ id: string;
1600
+ };
1601
+ };
1602
+ output: {
1603
+ error: string;
1604
+ };
1605
+ outputFormat: "json";
1606
+ status: 404;
1607
+ } | {
1608
+ input: {
1609
+ param: {
1610
+ id: string;
1611
+ };
1612
+ };
1613
+ output: {
1614
+ data: {
1615
+ id: string;
1616
+ title: string;
1617
+ personId: string | null;
1618
+ organizationId: string | null;
1619
+ pipelineId: string;
1620
+ stageId: string;
1621
+ ownerId: string | null;
1622
+ status: "archived" | "open" | "won" | "lost";
1623
+ valueAmountCents: number | null;
1624
+ valueCurrency: string | null;
1625
+ expectedCloseDate: string | null;
1626
+ source: string | null;
1627
+ sourceRef: string | null;
1628
+ lostReason: string | null;
1629
+ tags: string[];
1630
+ createdAt: string;
1631
+ updatedAt: string;
1632
+ stageChangedAt: string;
1633
+ closedAt: string | null;
1634
+ };
1635
+ };
1636
+ outputFormat: "json";
1637
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1638
+ };
1639
+ };
1640
+ } & {
1641
+ "/opportunities/:id": {
1642
+ $delete: {
1643
+ input: {
1644
+ param: {
1645
+ id: string;
1646
+ };
1647
+ };
1648
+ output: {
1649
+ error: string;
1650
+ };
1651
+ outputFormat: "json";
1652
+ status: 404;
1653
+ } | {
1654
+ input: {
1655
+ param: {
1656
+ id: string;
1657
+ };
1658
+ };
1659
+ output: {
1660
+ success: true;
1661
+ };
1662
+ outputFormat: "json";
1663
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1664
+ };
1665
+ };
1666
+ } & {
1667
+ "/opportunities/:id/participants": {
1668
+ $get: {
1669
+ input: {
1670
+ param: {
1671
+ id: string;
1672
+ };
1673
+ };
1674
+ output: {
1675
+ data: {
1676
+ id: string;
1677
+ opportunityId: string;
1678
+ personId: string;
1679
+ role: "other" | "traveler" | "booker" | "decision_maker" | "finance";
1680
+ isPrimary: boolean;
1681
+ createdAt: string;
1682
+ }[];
1683
+ };
1684
+ outputFormat: "json";
1685
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1686
+ };
1687
+ };
1688
+ } & {
1689
+ "/opportunities/:id/participants": {
1690
+ $post: {
1691
+ input: {
1692
+ param: {
1693
+ id: string;
1694
+ };
1695
+ };
1696
+ output: {
1697
+ data: {
1698
+ opportunityId: string;
1699
+ createdAt: string;
1700
+ isPrimary: boolean;
1701
+ role: "other" | "traveler" | "booker" | "decision_maker" | "finance";
1702
+ id: string;
1703
+ personId: string;
1704
+ } | undefined;
1705
+ };
1706
+ outputFormat: "json";
1707
+ status: 201;
1708
+ };
1709
+ };
1710
+ } & {
1711
+ "/opportunity-participants/:id": {
1712
+ $delete: {
1713
+ input: {
1714
+ param: {
1715
+ id: string;
1716
+ };
1717
+ };
1718
+ output: {
1719
+ error: string;
1720
+ };
1721
+ outputFormat: "json";
1722
+ status: 404;
1723
+ } | {
1724
+ input: {
1725
+ param: {
1726
+ id: string;
1727
+ };
1728
+ };
1729
+ output: {
1730
+ success: true;
1731
+ };
1732
+ outputFormat: "json";
1733
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1734
+ };
1735
+ };
1736
+ } & {
1737
+ "/opportunities/:id/products": {
1738
+ $get: {
1739
+ input: {
1740
+ param: {
1741
+ id: string;
1742
+ };
1743
+ };
1744
+ output: {
1745
+ data: {
1746
+ id: string;
1747
+ opportunityId: string;
1748
+ productId: string | null;
1749
+ supplierServiceId: string | null;
1750
+ nameSnapshot: string;
1751
+ description: string | null;
1752
+ quantity: number;
1753
+ unitPriceAmountCents: number | null;
1754
+ costAmountCents: number | null;
1755
+ currency: string | null;
1756
+ discountAmountCents: number | null;
1757
+ createdAt: string;
1758
+ updatedAt: string;
1759
+ }[];
1760
+ };
1761
+ outputFormat: "json";
1762
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1763
+ };
1764
+ };
1765
+ } & {
1766
+ "/opportunities/:id/products": {
1767
+ $post: {
1768
+ input: {
1769
+ param: {
1770
+ id: string;
1771
+ };
1772
+ };
1773
+ output: {
1774
+ data: {
1775
+ opportunityId: string;
1776
+ createdAt: string;
1777
+ updatedAt: string;
1778
+ description: string | null;
1779
+ id: string;
1780
+ productId: string | null;
1781
+ supplierServiceId: string | null;
1782
+ nameSnapshot: string;
1783
+ quantity: number;
1784
+ unitPriceAmountCents: number | null;
1785
+ costAmountCents: number | null;
1786
+ currency: string | null;
1787
+ discountAmountCents: number | null;
1788
+ } | undefined;
1789
+ };
1790
+ outputFormat: "json";
1791
+ status: 201;
1792
+ };
1793
+ };
1794
+ } & {
1795
+ "/opportunity-products/:id": {
1796
+ $patch: {
1797
+ input: {
1798
+ param: {
1799
+ id: string;
1800
+ };
1801
+ };
1802
+ output: {
1803
+ error: string;
1804
+ };
1805
+ outputFormat: "json";
1806
+ status: 404;
1807
+ } | {
1808
+ input: {
1809
+ param: {
1810
+ id: string;
1811
+ };
1812
+ };
1813
+ output: {
1814
+ data: {
1815
+ id: string;
1816
+ opportunityId: string;
1817
+ productId: string | null;
1818
+ supplierServiceId: string | null;
1819
+ nameSnapshot: string;
1820
+ description: string | null;
1821
+ quantity: number;
1822
+ unitPriceAmountCents: number | null;
1823
+ costAmountCents: number | null;
1824
+ currency: string | null;
1825
+ discountAmountCents: number | null;
1826
+ createdAt: string;
1827
+ updatedAt: string;
1828
+ };
1829
+ };
1830
+ outputFormat: "json";
1831
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1832
+ };
1833
+ };
1834
+ } & {
1835
+ "/opportunity-products/:id": {
1836
+ $delete: {
1837
+ input: {
1838
+ param: {
1839
+ id: string;
1840
+ };
1841
+ };
1842
+ output: {
1843
+ error: string;
1844
+ };
1845
+ outputFormat: "json";
1846
+ status: 404;
1847
+ } | {
1848
+ input: {
1849
+ param: {
1850
+ id: string;
1851
+ };
1852
+ };
1853
+ output: {
1854
+ success: true;
1855
+ };
1856
+ outputFormat: "json";
1857
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1858
+ };
1859
+ };
1860
+ }, "/"> | import("hono/types").MergeSchemaPath<{
1861
+ "/quotes": {
1862
+ $get: {
1863
+ input: {};
1864
+ output: {
1865
+ data: {
1866
+ id: string;
1867
+ opportunityId: string;
1868
+ status: "archived" | "draft" | "sent" | "accepted" | "expired" | "rejected";
1869
+ validUntil: string | null;
1870
+ currency: string;
1871
+ subtotalAmountCents: number;
1872
+ taxAmountCents: number;
1873
+ totalAmountCents: number;
1874
+ notes: string | null;
1875
+ createdAt: string;
1876
+ updatedAt: string;
1877
+ archivedAt: string | null;
1878
+ }[];
1879
+ total: number;
1880
+ limit: number;
1881
+ offset: number;
1882
+ };
1883
+ outputFormat: "json";
1884
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1885
+ };
1886
+ };
1887
+ } & {
1888
+ "/quotes": {
1889
+ $post: {
1890
+ input: {};
1891
+ output: {
1892
+ data: {
1893
+ opportunityId: string;
1894
+ createdAt: string;
1895
+ updatedAt: string;
1896
+ notes: string | null;
1897
+ id: string;
1898
+ status: "archived" | "draft" | "sent" | "accepted" | "expired" | "rejected";
1899
+ archivedAt: string | null;
1900
+ currency: string;
1901
+ validUntil: string | null;
1902
+ subtotalAmountCents: number;
1903
+ taxAmountCents: number;
1904
+ totalAmountCents: number;
1905
+ } | undefined;
1906
+ };
1907
+ outputFormat: "json";
1908
+ status: 201;
1909
+ };
1910
+ };
1911
+ } & {
1912
+ "/quotes/:id": {
1913
+ $get: {
1914
+ input: {
1915
+ param: {
1916
+ id: string;
1917
+ };
1918
+ };
1919
+ output: {
1920
+ error: string;
1921
+ };
1922
+ outputFormat: "json";
1923
+ status: 404;
1924
+ } | {
1925
+ input: {
1926
+ param: {
1927
+ id: string;
1928
+ };
1929
+ };
1930
+ output: {
1931
+ data: {
1932
+ id: string;
1933
+ opportunityId: string;
1934
+ status: "archived" | "draft" | "sent" | "accepted" | "expired" | "rejected";
1935
+ validUntil: string | null;
1936
+ currency: string;
1937
+ subtotalAmountCents: number;
1938
+ taxAmountCents: number;
1939
+ totalAmountCents: number;
1940
+ notes: string | null;
1941
+ createdAt: string;
1942
+ updatedAt: string;
1943
+ archivedAt: string | null;
1944
+ };
1945
+ };
1946
+ outputFormat: "json";
1947
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1948
+ };
1949
+ };
1950
+ } & {
1951
+ "/quotes/:id": {
1952
+ $patch: {
1953
+ input: {
1954
+ param: {
1955
+ id: string;
1956
+ };
1957
+ };
1958
+ output: {
1959
+ error: string;
1960
+ };
1961
+ outputFormat: "json";
1962
+ status: 404;
1963
+ } | {
1964
+ input: {
1965
+ param: {
1966
+ id: string;
1967
+ };
1968
+ };
1969
+ output: {
1970
+ data: {
1971
+ id: string;
1972
+ opportunityId: string;
1973
+ status: "archived" | "draft" | "sent" | "accepted" | "expired" | "rejected";
1974
+ validUntil: string | null;
1975
+ currency: string;
1976
+ subtotalAmountCents: number;
1977
+ taxAmountCents: number;
1978
+ totalAmountCents: number;
1979
+ notes: string | null;
1980
+ createdAt: string;
1981
+ updatedAt: string;
1982
+ archivedAt: string | null;
1983
+ };
1984
+ };
1985
+ outputFormat: "json";
1986
+ status: import("hono/utils/http-status").ContentfulStatusCode;
1987
+ };
1988
+ };
1989
+ } & {
1990
+ "/quotes/:id": {
1991
+ $delete: {
1992
+ input: {
1993
+ param: {
1994
+ id: string;
1995
+ };
1996
+ };
1997
+ output: {
1998
+ error: string;
1999
+ };
2000
+ outputFormat: "json";
2001
+ status: 404;
2002
+ } | {
2003
+ input: {
2004
+ param: {
2005
+ id: string;
2006
+ };
2007
+ };
2008
+ output: {
2009
+ success: true;
2010
+ };
2011
+ outputFormat: "json";
2012
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2013
+ };
2014
+ };
2015
+ } & {
2016
+ "/quotes/:id/lines": {
2017
+ $get: {
2018
+ input: {
2019
+ param: {
2020
+ id: string;
2021
+ };
2022
+ };
2023
+ output: {
2024
+ data: {
2025
+ id: string;
2026
+ quoteId: string;
2027
+ productId: string | null;
2028
+ supplierServiceId: string | null;
2029
+ description: string;
2030
+ quantity: number;
2031
+ unitPriceAmountCents: number;
2032
+ totalAmountCents: number;
2033
+ currency: string;
2034
+ createdAt: string;
2035
+ updatedAt: string;
2036
+ }[];
2037
+ };
2038
+ outputFormat: "json";
2039
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2040
+ };
2041
+ };
2042
+ } & {
2043
+ "/quotes/:id/lines": {
2044
+ $post: {
2045
+ input: {
2046
+ param: {
2047
+ id: string;
2048
+ };
2049
+ };
2050
+ output: {
2051
+ data: {
2052
+ quoteId: string;
2053
+ createdAt: string;
2054
+ updatedAt: string;
2055
+ description: string;
2056
+ id: string;
2057
+ productId: string | null;
2058
+ supplierServiceId: string | null;
2059
+ quantity: number;
2060
+ unitPriceAmountCents: number;
2061
+ currency: string;
2062
+ totalAmountCents: number;
2063
+ } | undefined;
2064
+ };
2065
+ outputFormat: "json";
2066
+ status: 201;
2067
+ };
2068
+ };
2069
+ } & {
2070
+ "/quote-lines/:id": {
2071
+ $patch: {
2072
+ input: {
2073
+ param: {
2074
+ id: string;
2075
+ };
2076
+ };
2077
+ output: {
2078
+ error: string;
2079
+ };
2080
+ outputFormat: "json";
2081
+ status: 404;
2082
+ } | {
2083
+ input: {
2084
+ param: {
2085
+ id: string;
2086
+ };
2087
+ };
2088
+ output: {
2089
+ data: {
2090
+ id: string;
2091
+ quoteId: string;
2092
+ productId: string | null;
2093
+ supplierServiceId: string | null;
2094
+ description: string;
2095
+ quantity: number;
2096
+ unitPriceAmountCents: number;
2097
+ totalAmountCents: number;
2098
+ currency: string;
2099
+ createdAt: string;
2100
+ updatedAt: string;
2101
+ };
2102
+ };
2103
+ outputFormat: "json";
2104
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2105
+ };
2106
+ };
2107
+ } & {
2108
+ "/quote-lines/:id": {
2109
+ $delete: {
2110
+ input: {
2111
+ param: {
2112
+ id: string;
2113
+ };
2114
+ };
2115
+ output: {
2116
+ error: string;
2117
+ };
2118
+ outputFormat: "json";
2119
+ status: 404;
2120
+ } | {
2121
+ input: {
2122
+ param: {
2123
+ id: string;
2124
+ };
2125
+ };
2126
+ output: {
2127
+ success: true;
2128
+ };
2129
+ outputFormat: "json";
2130
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2131
+ };
2132
+ };
2133
+ }, "/"> | import("hono/types").MergeSchemaPath<{
2134
+ "/activities": {
2135
+ $get: {
2136
+ input: {};
2137
+ output: {
2138
+ data: {
2139
+ id: string;
2140
+ subject: string;
2141
+ type: "email" | "meeting" | "call" | "task" | "follow_up" | "note";
2142
+ ownerId: string | null;
2143
+ status: "done" | "planned" | "cancelled";
2144
+ dueAt: string | null;
2145
+ completedAt: string | null;
2146
+ location: string | null;
2147
+ description: string | null;
2148
+ createdAt: string;
2149
+ updatedAt: string;
2150
+ }[];
2151
+ total: number;
2152
+ limit: number;
2153
+ offset: number;
2154
+ };
2155
+ outputFormat: "json";
2156
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2157
+ };
2158
+ };
2159
+ } & {
2160
+ "/activities": {
2161
+ $post: {
2162
+ input: {};
2163
+ output: {
2164
+ data: {
2165
+ createdAt: string;
2166
+ updatedAt: string;
2167
+ description: string | null;
2168
+ type: "email" | "meeting" | "call" | "task" | "follow_up" | "note";
2169
+ id: string;
2170
+ ownerId: string | null;
2171
+ status: "done" | "planned" | "cancelled";
2172
+ subject: string;
2173
+ dueAt: string | null;
2174
+ completedAt: string | null;
2175
+ location: string | null;
2176
+ } | undefined;
2177
+ };
2178
+ outputFormat: "json";
2179
+ status: 201;
2180
+ };
2181
+ };
2182
+ } & {
2183
+ "/activities/:id": {
2184
+ $get: {
2185
+ input: {
2186
+ param: {
2187
+ id: string;
2188
+ };
2189
+ };
2190
+ output: {
2191
+ error: string;
2192
+ };
2193
+ outputFormat: "json";
2194
+ status: 404;
2195
+ } | {
2196
+ input: {
2197
+ param: {
2198
+ id: string;
2199
+ };
2200
+ };
2201
+ output: {
2202
+ data: {
2203
+ id: string;
2204
+ subject: string;
2205
+ type: "email" | "meeting" | "call" | "task" | "follow_up" | "note";
2206
+ ownerId: string | null;
2207
+ status: "done" | "planned" | "cancelled";
2208
+ dueAt: string | null;
2209
+ completedAt: string | null;
2210
+ location: string | null;
2211
+ description: string | null;
2212
+ createdAt: string;
2213
+ updatedAt: string;
2214
+ };
2215
+ };
2216
+ outputFormat: "json";
2217
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2218
+ };
2219
+ };
2220
+ } & {
2221
+ "/activities/:id": {
2222
+ $patch: {
2223
+ input: {
2224
+ param: {
2225
+ id: string;
2226
+ };
2227
+ };
2228
+ output: {
2229
+ error: string;
2230
+ };
2231
+ outputFormat: "json";
2232
+ status: 404;
2233
+ } | {
2234
+ input: {
2235
+ param: {
2236
+ id: string;
2237
+ };
2238
+ };
2239
+ output: {
2240
+ data: {
2241
+ id: string;
2242
+ subject: string;
2243
+ type: "email" | "meeting" | "call" | "task" | "follow_up" | "note";
2244
+ ownerId: string | null;
2245
+ status: "done" | "planned" | "cancelled";
2246
+ dueAt: string | null;
2247
+ completedAt: string | null;
2248
+ location: string | null;
2249
+ description: string | null;
2250
+ createdAt: string;
2251
+ updatedAt: string;
2252
+ };
2253
+ };
2254
+ outputFormat: "json";
2255
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2256
+ };
2257
+ };
2258
+ } & {
2259
+ "/activities/:id": {
2260
+ $delete: {
2261
+ input: {
2262
+ param: {
2263
+ id: string;
2264
+ };
2265
+ };
2266
+ output: {
2267
+ error: string;
2268
+ };
2269
+ outputFormat: "json";
2270
+ status: 404;
2271
+ } | {
2272
+ input: {
2273
+ param: {
2274
+ id: string;
2275
+ };
2276
+ };
2277
+ output: {
2278
+ success: true;
2279
+ };
2280
+ outputFormat: "json";
2281
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2282
+ };
2283
+ };
2284
+ } & {
2285
+ "/activities/:id/links": {
2286
+ $get: {
2287
+ input: {
2288
+ param: {
2289
+ id: string;
2290
+ };
2291
+ };
2292
+ output: {
2293
+ data: {
2294
+ id: string;
2295
+ activityId: string;
2296
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2297
+ entityId: string;
2298
+ role: "primary" | "related";
2299
+ createdAt: string;
2300
+ }[];
2301
+ };
2302
+ outputFormat: "json";
2303
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2304
+ };
2305
+ };
2306
+ } & {
2307
+ "/activities/:id/links": {
2308
+ $post: {
2309
+ input: {
2310
+ param: {
2311
+ id: string;
2312
+ };
2313
+ };
2314
+ output: {
2315
+ data: {
2316
+ createdAt: string;
2317
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2318
+ entityId: string;
2319
+ role: "primary" | "related";
2320
+ id: string;
2321
+ activityId: string;
2322
+ } | undefined;
2323
+ };
2324
+ outputFormat: "json";
2325
+ status: 201;
2326
+ };
2327
+ };
2328
+ } & {
2329
+ "/activity-links/:id": {
2330
+ $delete: {
2331
+ input: {
2332
+ param: {
2333
+ id: string;
2334
+ };
2335
+ };
2336
+ output: {
2337
+ error: string;
2338
+ };
2339
+ outputFormat: "json";
2340
+ status: 404;
2341
+ } | {
2342
+ input: {
2343
+ param: {
2344
+ id: string;
2345
+ };
2346
+ };
2347
+ output: {
2348
+ success: true;
2349
+ };
2350
+ outputFormat: "json";
2351
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2352
+ };
2353
+ };
2354
+ } & {
2355
+ "/activities/:id/participants": {
2356
+ $get: {
2357
+ input: {
2358
+ param: {
2359
+ id: string;
2360
+ };
2361
+ };
2362
+ output: {
2363
+ data: {
2364
+ id: string;
2365
+ activityId: string;
2366
+ personId: string;
2367
+ isPrimary: boolean;
2368
+ createdAt: string;
2369
+ }[];
2370
+ };
2371
+ outputFormat: "json";
2372
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2373
+ };
2374
+ };
2375
+ } & {
2376
+ "/activities/:id/participants": {
2377
+ $post: {
2378
+ input: {
2379
+ param: {
2380
+ id: string;
2381
+ };
2382
+ };
2383
+ output: {
2384
+ data: {
2385
+ createdAt: string;
2386
+ isPrimary: boolean;
2387
+ id: string;
2388
+ personId: string;
2389
+ activityId: string;
2390
+ } | undefined;
2391
+ };
2392
+ outputFormat: "json";
2393
+ status: 201;
2394
+ };
2395
+ };
2396
+ } & {
2397
+ "/activity-participants/:id": {
2398
+ $delete: {
2399
+ input: {
2400
+ param: {
2401
+ id: string;
2402
+ };
2403
+ };
2404
+ output: {
2405
+ error: string;
2406
+ };
2407
+ outputFormat: "json";
2408
+ status: 404;
2409
+ } | {
2410
+ input: {
2411
+ param: {
2412
+ id: string;
2413
+ };
2414
+ };
2415
+ output: {
2416
+ success: true;
2417
+ };
2418
+ outputFormat: "json";
2419
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2420
+ };
2421
+ };
2422
+ }, "/"> | import("hono/types").MergeSchemaPath<{
2423
+ "/custom-fields": {
2424
+ $get: {
2425
+ input: {};
2426
+ output: {
2427
+ data: {
2428
+ id: string;
2429
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2430
+ key: string;
2431
+ label: string;
2432
+ fieldType: "boolean" | "json" | "date" | "text" | "phone" | "set" | "enum" | "varchar" | "double" | "monetary" | "address";
2433
+ isRequired: boolean;
2434
+ isSearchable: boolean;
2435
+ options: {
2436
+ label: string;
2437
+ value: string;
2438
+ }[] | null;
2439
+ createdAt: string;
2440
+ updatedAt: string;
2441
+ }[];
2442
+ total: number;
2443
+ limit: number;
2444
+ offset: number;
2445
+ };
2446
+ outputFormat: "json";
2447
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2448
+ };
2449
+ };
2450
+ } & {
2451
+ "/custom-fields": {
2452
+ $post: {
2453
+ input: {};
2454
+ output: {
2455
+ data: {
2456
+ key: string;
2457
+ createdAt: string;
2458
+ updatedAt: string;
2459
+ options: {
2460
+ label: string;
2461
+ value: string;
2462
+ }[] | null;
2463
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2464
+ label: string;
2465
+ id: string;
2466
+ fieldType: "boolean" | "json" | "date" | "text" | "phone" | "set" | "enum" | "varchar" | "double" | "monetary" | "address";
2467
+ isRequired: boolean;
2468
+ isSearchable: boolean;
2469
+ } | undefined;
2470
+ };
2471
+ outputFormat: "json";
2472
+ status: 201;
2473
+ };
2474
+ };
2475
+ } & {
2476
+ "/custom-fields/:id": {
2477
+ $get: {
2478
+ input: {
2479
+ param: {
2480
+ id: string;
2481
+ };
2482
+ };
2483
+ output: {
2484
+ error: string;
2485
+ };
2486
+ outputFormat: "json";
2487
+ status: 404;
2488
+ } | {
2489
+ input: {
2490
+ param: {
2491
+ id: string;
2492
+ };
2493
+ };
2494
+ output: {
2495
+ data: {
2496
+ id: string;
2497
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2498
+ key: string;
2499
+ label: string;
2500
+ fieldType: "boolean" | "json" | "date" | "text" | "phone" | "set" | "enum" | "varchar" | "double" | "monetary" | "address";
2501
+ isRequired: boolean;
2502
+ isSearchable: boolean;
2503
+ options: {
2504
+ label: string;
2505
+ value: string;
2506
+ }[] | null;
2507
+ createdAt: string;
2508
+ updatedAt: string;
2509
+ };
2510
+ };
2511
+ outputFormat: "json";
2512
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2513
+ };
2514
+ };
2515
+ } & {
2516
+ "/custom-fields/:id": {
2517
+ $patch: {
2518
+ input: {
2519
+ param: {
2520
+ id: string;
2521
+ };
2522
+ };
2523
+ output: {
2524
+ error: string;
2525
+ };
2526
+ outputFormat: "json";
2527
+ status: 404;
2528
+ } | {
2529
+ input: {
2530
+ param: {
2531
+ id: string;
2532
+ };
2533
+ };
2534
+ output: {
2535
+ data: {
2536
+ id: string;
2537
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2538
+ key: string;
2539
+ label: string;
2540
+ fieldType: "boolean" | "json" | "date" | "text" | "phone" | "set" | "enum" | "varchar" | "double" | "monetary" | "address";
2541
+ isRequired: boolean;
2542
+ isSearchable: boolean;
2543
+ options: {
2544
+ label: string;
2545
+ value: string;
2546
+ }[] | null;
2547
+ createdAt: string;
2548
+ updatedAt: string;
2549
+ };
2550
+ };
2551
+ outputFormat: "json";
2552
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2553
+ };
2554
+ };
2555
+ } & {
2556
+ "/custom-fields/:id": {
2557
+ $delete: {
2558
+ input: {
2559
+ param: {
2560
+ id: string;
2561
+ };
2562
+ };
2563
+ output: {
2564
+ error: string;
2565
+ };
2566
+ outputFormat: "json";
2567
+ status: 404;
2568
+ } | {
2569
+ input: {
2570
+ param: {
2571
+ id: string;
2572
+ };
2573
+ };
2574
+ output: {
2575
+ success: true;
2576
+ };
2577
+ outputFormat: "json";
2578
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2579
+ };
2580
+ };
2581
+ } & {
2582
+ "/custom-field-values": {
2583
+ $get: {
2584
+ input: {};
2585
+ output: {
2586
+ data: {
2587
+ id: string;
2588
+ definitionId: string;
2589
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2590
+ entityId: string;
2591
+ textValue: string | null;
2592
+ numberValue: number | null;
2593
+ dateValue: string | null;
2594
+ booleanValue: boolean | null;
2595
+ monetaryValueCents: number | null;
2596
+ currencyCode: string | null;
2597
+ jsonValue: string[] | {
2598
+ [x: string]: import("hono/utils/types").JSONValue;
2599
+ } | null;
2600
+ createdAt: string;
2601
+ updatedAt: string;
2602
+ }[];
2603
+ total: number;
2604
+ limit: number;
2605
+ offset: number;
2606
+ };
2607
+ outputFormat: "json";
2608
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2609
+ };
2610
+ };
2611
+ } & {
2612
+ "/custom-fields/:id/value": {
2613
+ $put: {
2614
+ input: {
2615
+ param: {
2616
+ id: string;
2617
+ };
2618
+ };
2619
+ output: {
2620
+ data: {
2621
+ createdAt: string;
2622
+ updatedAt: string;
2623
+ entityType: "organization" | "person" | "opportunity" | "quote" | "activity";
2624
+ entityId: string;
2625
+ id: string;
2626
+ definitionId: string;
2627
+ textValue: string | null;
2628
+ numberValue: number | null;
2629
+ dateValue: string | null;
2630
+ booleanValue: boolean | null;
2631
+ monetaryValueCents: number | null;
2632
+ currencyCode: string | null;
2633
+ jsonValue: string[] | {
2634
+ [x: string]: import("hono/utils/types").JSONValue;
2635
+ } | null;
2636
+ } | undefined;
2637
+ };
2638
+ outputFormat: "json";
2639
+ status: 200;
2640
+ };
2641
+ };
2642
+ } & {
2643
+ "/custom-field-values/:id": {
2644
+ $delete: {
2645
+ input: {
2646
+ param: {
2647
+ id: string;
2648
+ };
2649
+ };
2650
+ output: {
2651
+ error: string;
2652
+ };
2653
+ outputFormat: "json";
2654
+ status: 404;
2655
+ } | {
2656
+ input: {
2657
+ param: {
2658
+ id: string;
2659
+ };
2660
+ };
2661
+ output: {
2662
+ success: true;
2663
+ };
2664
+ outputFormat: "json";
2665
+ status: import("hono/utils/http-status").ContentfulStatusCode;
2666
+ };
2667
+ };
2668
+ }, "/">, "/", "/">;
2669
+ export type CrmRoutes = typeof crmRoutes;
2670
+ export {};
2671
+ //# sourceMappingURL=index.d.ts.map