@voyantjs/crm 0.106.1 → 0.107.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 (51) hide show
  1. package/README.md +3 -3
  2. package/dist/booking-extension.d.ts +7 -7
  3. package/dist/booking-extension.d.ts.map +1 -1
  4. package/dist/booking-extension.js +8 -5
  5. package/dist/index.d.ts +5 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -2
  8. package/dist/routes/activities.d.ts +2 -2
  9. package/dist/routes/custom-fields.d.ts +6 -6
  10. package/dist/routes/index.d.ts +518 -51
  11. package/dist/routes/index.d.ts.map +1 -1
  12. package/dist/routes/index.js +2 -2
  13. package/dist/routes/pipelines.d.ts +4 -4
  14. package/dist/routes/quote-versions.d.ts +746 -0
  15. package/dist/routes/quote-versions.d.ts.map +1 -0
  16. package/dist/routes/quote-versions.js +175 -0
  17. package/dist/routes/quotes.d.ts +161 -53
  18. package/dist/routes/quotes.d.ts.map +1 -1
  19. package/dist/routes/quotes.js +29 -11
  20. package/dist/schema-activities.d.ts +6 -6
  21. package/dist/schema-relations.d.ts +19 -18
  22. package/dist/schema-relations.d.ts.map +1 -1
  23. package/dist/schema-relations.js +38 -31
  24. package/dist/schema-sales.d.ts +206 -87
  25. package/dist/schema-sales.d.ts.map +1 -1
  26. package/dist/schema-sales.js +62 -50
  27. package/dist/schema-shared.d.ts +3 -3
  28. package/dist/schema-shared.d.ts.map +1 -1
  29. package/dist/schema-shared.js +5 -16
  30. package/dist/schema-signals.d.ts +1 -1
  31. package/dist/schema-signals.js +1 -1
  32. package/dist/service/accounts-merge.js +10 -10
  33. package/dist/service/activities.d.ts +6 -6
  34. package/dist/service/custom-fields.d.ts +6 -6
  35. package/dist/service/index.d.ts +338 -139
  36. package/dist/service/index.d.ts.map +1 -1
  37. package/dist/service/index.js +2 -2
  38. package/dist/service/pipelines.d.ts +4 -4
  39. package/dist/service/quote-versions.d.ts +674 -0
  40. package/dist/service/quote-versions.d.ts.map +1 -0
  41. package/dist/service/quote-versions.js +399 -0
  42. package/dist/service/quotes.d.ts +426 -94
  43. package/dist/service/quotes.d.ts.map +1 -1
  44. package/dist/service/quotes.js +63 -22
  45. package/package.json +7 -7
  46. package/dist/routes/opportunities.d.ts +0 -387
  47. package/dist/routes/opportunities.d.ts.map +0 -1
  48. package/dist/routes/opportunities.js +0 -70
  49. package/dist/service/opportunities.d.ts +0 -822
  50. package/dist/service/opportunities.d.ts.map +0 -1
  51. package/dist/service/opportunities.js +0 -117
@@ -0,0 +1,674 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { z } from "zod";
3
+ import { type Quote, type QuoteVersion, type QuoteVersionLine } from "../schema.js";
4
+ import type { acceptQuoteVersionSchema, applyTripSnapshotToQuoteVersionSchema, declineQuoteVersionSchema, expireQuoteVersionsSchema, insertQuoteVersionLineSchema, insertQuoteVersionSchema, quoteVersionListQuerySchema, sendQuoteVersionSchema, updateQuoteVersionLineSchema, updateQuoteVersionSchema } from "../validation.js";
5
+ type QuoteVersionListQuery = z.infer<typeof quoteVersionListQuerySchema>;
6
+ type CreateQuoteVersionInput = z.infer<typeof insertQuoteVersionSchema>;
7
+ type UpdateQuoteVersionInput = z.infer<typeof updateQuoteVersionSchema>;
8
+ type CreateQuoteVersionLineInput = z.infer<typeof insertQuoteVersionLineSchema>;
9
+ type UpdateQuoteVersionLineInput = z.infer<typeof updateQuoteVersionLineSchema>;
10
+ type ApplyTripSnapshotToQuoteVersionInput = z.infer<typeof applyTripSnapshotToQuoteVersionSchema>;
11
+ type SendQuoteVersionInput = z.infer<typeof sendQuoteVersionSchema>;
12
+ type AcceptQuoteVersionInput = z.infer<typeof acceptQuoteVersionSchema>;
13
+ type DeclineQuoteVersionInput = z.infer<typeof declineQuoteVersionSchema>;
14
+ type ExpireQuoteVersionsInput = z.infer<typeof expireQuoteVersionsSchema>;
15
+ export interface QuoteVersionProposalReadModel {
16
+ quote: Quote;
17
+ quoteVersion: QuoteVersion;
18
+ lines: QuoteVersionLine[];
19
+ }
20
+ export interface AcceptQuoteVersionResult {
21
+ quote: Quote;
22
+ quoteVersion: QuoteVersion;
23
+ closedQuoteVersions: QuoteVersion[];
24
+ }
25
+ export declare class QuoteVersionConflictError extends Error {
26
+ constructor(message: string);
27
+ }
28
+ export declare const quoteVersionsService: {
29
+ listQuoteVersions(db: PostgresJsDatabase, query: QuoteVersionListQuery): Promise<{
30
+ data: {
31
+ id: string;
32
+ quoteId: string;
33
+ label: string | null;
34
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
35
+ supersedesId: string | null;
36
+ tripSnapshotId: string | null;
37
+ validUntil: string | null;
38
+ currency: string;
39
+ subtotalAmountCents: number;
40
+ taxAmountCents: number;
41
+ totalAmountCents: number;
42
+ notes: string | null;
43
+ sentAt: Date | null;
44
+ viewedAt: Date | null;
45
+ decidedAt: Date | null;
46
+ createdAt: Date;
47
+ updatedAt: Date;
48
+ archivedAt: Date | null;
49
+ }[];
50
+ total: number;
51
+ limit: number;
52
+ offset: number;
53
+ }>;
54
+ getQuoteVersionById(db: PostgresJsDatabase, id: string): Promise<{
55
+ id: string;
56
+ quoteId: string;
57
+ label: string | null;
58
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
59
+ supersedesId: string | null;
60
+ tripSnapshotId: string | null;
61
+ validUntil: string | null;
62
+ currency: string;
63
+ subtotalAmountCents: number;
64
+ taxAmountCents: number;
65
+ totalAmountCents: number;
66
+ notes: string | null;
67
+ sentAt: Date | null;
68
+ viewedAt: Date | null;
69
+ decidedAt: Date | null;
70
+ createdAt: Date;
71
+ updatedAt: Date;
72
+ archivedAt: Date | null;
73
+ } | null>;
74
+ getQuoteVersionProposal(db: PostgresJsDatabase, id: string): Promise<QuoteVersionProposalReadModel | null>;
75
+ createQuoteVersion(db: PostgresJsDatabase, data: CreateQuoteVersionInput): Promise<{
76
+ id: string;
77
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
78
+ createdAt: Date;
79
+ decidedAt: Date | null;
80
+ updatedAt: Date;
81
+ currency: string;
82
+ notes: string | null;
83
+ quoteId: string;
84
+ label: string | null;
85
+ archivedAt: Date | null;
86
+ sentAt: Date | null;
87
+ supersedesId: string | null;
88
+ tripSnapshotId: string | null;
89
+ validUntil: string | null;
90
+ subtotalAmountCents: number;
91
+ taxAmountCents: number;
92
+ totalAmountCents: number;
93
+ viewedAt: Date | null;
94
+ } | undefined>;
95
+ updateQuoteVersion(db: PostgresJsDatabase, id: string, data: UpdateQuoteVersionInput): Promise<{
96
+ id: string;
97
+ quoteId: string;
98
+ label: string | null;
99
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
100
+ supersedesId: string | null;
101
+ tripSnapshotId: string | null;
102
+ validUntil: string | null;
103
+ currency: string;
104
+ subtotalAmountCents: number;
105
+ taxAmountCents: number;
106
+ totalAmountCents: number;
107
+ notes: string | null;
108
+ sentAt: Date | null;
109
+ viewedAt: Date | null;
110
+ decidedAt: Date | null;
111
+ createdAt: Date;
112
+ updatedAt: Date;
113
+ archivedAt: Date | null;
114
+ } | null>;
115
+ deleteQuoteVersion(db: PostgresJsDatabase, id: string): Promise<{
116
+ id: string;
117
+ } | null>;
118
+ applyTripSnapshotToQuoteVersion(db: PostgresJsDatabase, id: string, data: ApplyTripSnapshotToQuoteVersionInput): Promise<{
119
+ quoteVersion: {
120
+ id: string;
121
+ quoteId: string;
122
+ label: string | null;
123
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
124
+ supersedesId: string | null;
125
+ tripSnapshotId: string | null;
126
+ validUntil: string | null;
127
+ currency: string;
128
+ subtotalAmountCents: number;
129
+ taxAmountCents: number;
130
+ totalAmountCents: number;
131
+ notes: string | null;
132
+ sentAt: Date | null;
133
+ viewedAt: Date | null;
134
+ decidedAt: Date | null;
135
+ createdAt: Date;
136
+ updatedAt: Date;
137
+ archivedAt: Date | null;
138
+ };
139
+ lines: {
140
+ id: string;
141
+ description: string;
142
+ createdAt: Date;
143
+ updatedAt: Date;
144
+ currency: string;
145
+ quoteVersionId: string;
146
+ productId: string | null;
147
+ supplierServiceId: string | null;
148
+ quantity: number;
149
+ unitPriceAmountCents: number;
150
+ totalAmountCents: number;
151
+ }[];
152
+ } | null>;
153
+ sendQuoteVersion(db: PostgresJsDatabase, id: string, data?: SendQuoteVersionInput): Promise<{
154
+ id: string;
155
+ quoteId: string;
156
+ label: string | null;
157
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
158
+ supersedesId: string | null;
159
+ tripSnapshotId: string | null;
160
+ validUntil: string | null;
161
+ currency: string;
162
+ subtotalAmountCents: number;
163
+ taxAmountCents: number;
164
+ totalAmountCents: number;
165
+ notes: string | null;
166
+ sentAt: Date | null;
167
+ viewedAt: Date | null;
168
+ decidedAt: Date | null;
169
+ createdAt: Date;
170
+ updatedAt: Date;
171
+ archivedAt: Date | null;
172
+ } | null>;
173
+ markQuoteVersionViewed(db: PostgresJsDatabase, id: string): Promise<{
174
+ id: string;
175
+ quoteId: string;
176
+ label: string | null;
177
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
178
+ supersedesId: string | null;
179
+ tripSnapshotId: string | null;
180
+ validUntil: string | null;
181
+ currency: string;
182
+ subtotalAmountCents: number;
183
+ taxAmountCents: number;
184
+ totalAmountCents: number;
185
+ notes: string | null;
186
+ sentAt: Date | null;
187
+ viewedAt: Date | null;
188
+ decidedAt: Date | null;
189
+ createdAt: Date;
190
+ updatedAt: Date;
191
+ archivedAt: Date | null;
192
+ } | null>;
193
+ acceptQuoteVersion(db: PostgresJsDatabase, id: string, _data?: AcceptQuoteVersionInput): Promise<AcceptQuoteVersionResult | null>;
194
+ declineQuoteVersion(db: PostgresJsDatabase, id: string, _data?: DeclineQuoteVersionInput): Promise<{
195
+ id: string;
196
+ quoteId: string;
197
+ label: string | null;
198
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
199
+ supersedesId: string | null;
200
+ tripSnapshotId: string | null;
201
+ validUntil: string | null;
202
+ currency: string;
203
+ subtotalAmountCents: number;
204
+ taxAmountCents: number;
205
+ totalAmountCents: number;
206
+ notes: string | null;
207
+ sentAt: Date | null;
208
+ viewedAt: Date | null;
209
+ decidedAt: Date | null;
210
+ createdAt: Date;
211
+ updatedAt: Date;
212
+ archivedAt: Date | null;
213
+ } | null>;
214
+ expireQuoteVersionIfPastValidUntil(db: PostgresJsDatabase, id: string, nowValue?: Date | string): Promise<{
215
+ id: string;
216
+ quoteId: string;
217
+ label: string | null;
218
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
219
+ supersedesId: string | null;
220
+ tripSnapshotId: string | null;
221
+ validUntil: string | null;
222
+ currency: string;
223
+ subtotalAmountCents: number;
224
+ taxAmountCents: number;
225
+ totalAmountCents: number;
226
+ notes: string | null;
227
+ sentAt: Date | null;
228
+ viewedAt: Date | null;
229
+ decidedAt: Date | null;
230
+ createdAt: Date;
231
+ updatedAt: Date;
232
+ archivedAt: Date | null;
233
+ } | null>;
234
+ expireQuoteVersions(db: PostgresJsDatabase, data?: ExpireQuoteVersionsInput): Promise<{
235
+ id: string;
236
+ quoteId: string;
237
+ label: string | null;
238
+ status: "expired" | "superseded" | "draft" | "sent" | "accepted" | "declined";
239
+ supersedesId: string | null;
240
+ tripSnapshotId: string | null;
241
+ validUntil: string | null;
242
+ currency: string;
243
+ subtotalAmountCents: number;
244
+ taxAmountCents: number;
245
+ totalAmountCents: number;
246
+ notes: string | null;
247
+ sentAt: Date | null;
248
+ viewedAt: Date | null;
249
+ decidedAt: Date | null;
250
+ createdAt: Date;
251
+ updatedAt: Date;
252
+ archivedAt: Date | null;
253
+ }[]>;
254
+ listQuoteVersionLines(db: PostgresJsDatabase, quoteVersionId: string): Omit<import("drizzle-orm/pg-core").PgSelectBase<"quote_version_lines", {
255
+ id: import("drizzle-orm/pg-core").PgColumn<{
256
+ name: string;
257
+ tableName: "quote_version_lines";
258
+ dataType: "string";
259
+ columnType: "PgText";
260
+ data: string;
261
+ driverParam: string;
262
+ notNull: true;
263
+ hasDefault: true;
264
+ isPrimaryKey: true;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: true;
267
+ enumValues: [string, ...string[]];
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ quoteVersionId: import("drizzle-orm/pg-core").PgColumn<{
273
+ name: string;
274
+ tableName: "quote_version_lines";
275
+ dataType: "string";
276
+ columnType: "PgText";
277
+ data: string;
278
+ driverParam: string;
279
+ notNull: true;
280
+ hasDefault: false;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: [string, ...string[]];
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ productId: import("drizzle-orm/pg-core").PgColumn<{
290
+ name: "product_id";
291
+ tableName: "quote_version_lines";
292
+ dataType: "string";
293
+ columnType: "PgText";
294
+ data: string;
295
+ driverParam: string;
296
+ notNull: false;
297
+ hasDefault: false;
298
+ isPrimaryKey: false;
299
+ isAutoincrement: false;
300
+ hasRuntimeDefault: false;
301
+ enumValues: [string, ...string[]];
302
+ baseColumn: never;
303
+ identity: undefined;
304
+ generated: undefined;
305
+ }, {}, {}>;
306
+ supplierServiceId: import("drizzle-orm/pg-core").PgColumn<{
307
+ name: "supplier_service_id";
308
+ tableName: "quote_version_lines";
309
+ dataType: "string";
310
+ columnType: "PgText";
311
+ data: string;
312
+ driverParam: string;
313
+ notNull: false;
314
+ hasDefault: false;
315
+ isPrimaryKey: false;
316
+ isAutoincrement: false;
317
+ hasRuntimeDefault: false;
318
+ enumValues: [string, ...string[]];
319
+ baseColumn: never;
320
+ identity: undefined;
321
+ generated: undefined;
322
+ }, {}, {}>;
323
+ description: import("drizzle-orm/pg-core").PgColumn<{
324
+ name: "description";
325
+ tableName: "quote_version_lines";
326
+ dataType: "string";
327
+ columnType: "PgText";
328
+ data: string;
329
+ driverParam: string;
330
+ notNull: true;
331
+ hasDefault: false;
332
+ isPrimaryKey: false;
333
+ isAutoincrement: false;
334
+ hasRuntimeDefault: false;
335
+ enumValues: [string, ...string[]];
336
+ baseColumn: never;
337
+ identity: undefined;
338
+ generated: undefined;
339
+ }, {}, {}>;
340
+ quantity: import("drizzle-orm/pg-core").PgColumn<{
341
+ name: "quantity";
342
+ tableName: "quote_version_lines";
343
+ dataType: "number";
344
+ columnType: "PgInteger";
345
+ data: number;
346
+ driverParam: string | number;
347
+ notNull: true;
348
+ hasDefault: true;
349
+ isPrimaryKey: false;
350
+ isAutoincrement: false;
351
+ hasRuntimeDefault: false;
352
+ enumValues: undefined;
353
+ baseColumn: never;
354
+ identity: undefined;
355
+ generated: undefined;
356
+ }, {}, {}>;
357
+ unitPriceAmountCents: import("drizzle-orm/pg-core").PgColumn<{
358
+ name: "unit_price_amount_cents";
359
+ tableName: "quote_version_lines";
360
+ dataType: "number";
361
+ columnType: "PgInteger";
362
+ data: number;
363
+ driverParam: string | number;
364
+ notNull: true;
365
+ hasDefault: true;
366
+ isPrimaryKey: false;
367
+ isAutoincrement: false;
368
+ hasRuntimeDefault: false;
369
+ enumValues: undefined;
370
+ baseColumn: never;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }, {}, {}>;
374
+ totalAmountCents: import("drizzle-orm/pg-core").PgColumn<{
375
+ name: "total_amount_cents";
376
+ tableName: "quote_version_lines";
377
+ dataType: "number";
378
+ columnType: "PgInteger";
379
+ data: number;
380
+ driverParam: string | number;
381
+ notNull: true;
382
+ hasDefault: true;
383
+ isPrimaryKey: false;
384
+ isAutoincrement: false;
385
+ hasRuntimeDefault: false;
386
+ enumValues: undefined;
387
+ baseColumn: never;
388
+ identity: undefined;
389
+ generated: undefined;
390
+ }, {}, {}>;
391
+ currency: import("drizzle-orm/pg-core").PgColumn<{
392
+ name: "currency";
393
+ tableName: "quote_version_lines";
394
+ dataType: "string";
395
+ columnType: "PgText";
396
+ data: string;
397
+ driverParam: string;
398
+ notNull: true;
399
+ hasDefault: false;
400
+ isPrimaryKey: false;
401
+ isAutoincrement: false;
402
+ hasRuntimeDefault: false;
403
+ enumValues: [string, ...string[]];
404
+ baseColumn: never;
405
+ identity: undefined;
406
+ generated: undefined;
407
+ }, {}, {}>;
408
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
409
+ name: "created_at";
410
+ tableName: "quote_version_lines";
411
+ dataType: "date";
412
+ columnType: "PgTimestamp";
413
+ data: Date;
414
+ driverParam: string;
415
+ notNull: true;
416
+ hasDefault: true;
417
+ isPrimaryKey: false;
418
+ isAutoincrement: false;
419
+ hasRuntimeDefault: false;
420
+ enumValues: undefined;
421
+ baseColumn: never;
422
+ identity: undefined;
423
+ generated: undefined;
424
+ }, {}, {}>;
425
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
426
+ name: "updated_at";
427
+ tableName: "quote_version_lines";
428
+ dataType: "date";
429
+ columnType: "PgTimestamp";
430
+ data: Date;
431
+ driverParam: string;
432
+ notNull: true;
433
+ hasDefault: true;
434
+ isPrimaryKey: false;
435
+ isAutoincrement: false;
436
+ hasRuntimeDefault: false;
437
+ enumValues: undefined;
438
+ baseColumn: never;
439
+ identity: undefined;
440
+ generated: undefined;
441
+ }, {}, {}>;
442
+ }, "single", Record<"quote_version_lines", "not-null">, false, "where" | "orderBy", {
443
+ id: string;
444
+ quoteVersionId: string;
445
+ productId: string | null;
446
+ supplierServiceId: string | null;
447
+ description: string;
448
+ quantity: number;
449
+ unitPriceAmountCents: number;
450
+ totalAmountCents: number;
451
+ currency: string;
452
+ createdAt: Date;
453
+ updatedAt: Date;
454
+ }[], {
455
+ id: import("drizzle-orm/pg-core").PgColumn<{
456
+ name: string;
457
+ tableName: "quote_version_lines";
458
+ dataType: "string";
459
+ columnType: "PgText";
460
+ data: string;
461
+ driverParam: string;
462
+ notNull: true;
463
+ hasDefault: true;
464
+ isPrimaryKey: true;
465
+ isAutoincrement: false;
466
+ hasRuntimeDefault: true;
467
+ enumValues: [string, ...string[]];
468
+ baseColumn: never;
469
+ identity: undefined;
470
+ generated: undefined;
471
+ }, {}, {}>;
472
+ quoteVersionId: import("drizzle-orm/pg-core").PgColumn<{
473
+ name: string;
474
+ tableName: "quote_version_lines";
475
+ dataType: "string";
476
+ columnType: "PgText";
477
+ data: string;
478
+ driverParam: string;
479
+ notNull: true;
480
+ hasDefault: false;
481
+ isPrimaryKey: false;
482
+ isAutoincrement: false;
483
+ hasRuntimeDefault: false;
484
+ enumValues: [string, ...string[]];
485
+ baseColumn: never;
486
+ identity: undefined;
487
+ generated: undefined;
488
+ }, {}, {}>;
489
+ productId: import("drizzle-orm/pg-core").PgColumn<{
490
+ name: "product_id";
491
+ tableName: "quote_version_lines";
492
+ dataType: "string";
493
+ columnType: "PgText";
494
+ data: string;
495
+ driverParam: string;
496
+ notNull: false;
497
+ hasDefault: false;
498
+ isPrimaryKey: false;
499
+ isAutoincrement: false;
500
+ hasRuntimeDefault: false;
501
+ enumValues: [string, ...string[]];
502
+ baseColumn: never;
503
+ identity: undefined;
504
+ generated: undefined;
505
+ }, {}, {}>;
506
+ supplierServiceId: import("drizzle-orm/pg-core").PgColumn<{
507
+ name: "supplier_service_id";
508
+ tableName: "quote_version_lines";
509
+ dataType: "string";
510
+ columnType: "PgText";
511
+ data: string;
512
+ driverParam: string;
513
+ notNull: false;
514
+ hasDefault: false;
515
+ isPrimaryKey: false;
516
+ isAutoincrement: false;
517
+ hasRuntimeDefault: false;
518
+ enumValues: [string, ...string[]];
519
+ baseColumn: never;
520
+ identity: undefined;
521
+ generated: undefined;
522
+ }, {}, {}>;
523
+ description: import("drizzle-orm/pg-core").PgColumn<{
524
+ name: "description";
525
+ tableName: "quote_version_lines";
526
+ dataType: "string";
527
+ columnType: "PgText";
528
+ data: string;
529
+ driverParam: string;
530
+ notNull: true;
531
+ hasDefault: false;
532
+ isPrimaryKey: false;
533
+ isAutoincrement: false;
534
+ hasRuntimeDefault: false;
535
+ enumValues: [string, ...string[]];
536
+ baseColumn: never;
537
+ identity: undefined;
538
+ generated: undefined;
539
+ }, {}, {}>;
540
+ quantity: import("drizzle-orm/pg-core").PgColumn<{
541
+ name: "quantity";
542
+ tableName: "quote_version_lines";
543
+ dataType: "number";
544
+ columnType: "PgInteger";
545
+ data: number;
546
+ driverParam: string | number;
547
+ notNull: true;
548
+ hasDefault: true;
549
+ isPrimaryKey: false;
550
+ isAutoincrement: false;
551
+ hasRuntimeDefault: false;
552
+ enumValues: undefined;
553
+ baseColumn: never;
554
+ identity: undefined;
555
+ generated: undefined;
556
+ }, {}, {}>;
557
+ unitPriceAmountCents: import("drizzle-orm/pg-core").PgColumn<{
558
+ name: "unit_price_amount_cents";
559
+ tableName: "quote_version_lines";
560
+ dataType: "number";
561
+ columnType: "PgInteger";
562
+ data: number;
563
+ driverParam: string | number;
564
+ notNull: true;
565
+ hasDefault: true;
566
+ isPrimaryKey: false;
567
+ isAutoincrement: false;
568
+ hasRuntimeDefault: false;
569
+ enumValues: undefined;
570
+ baseColumn: never;
571
+ identity: undefined;
572
+ generated: undefined;
573
+ }, {}, {}>;
574
+ totalAmountCents: import("drizzle-orm/pg-core").PgColumn<{
575
+ name: "total_amount_cents";
576
+ tableName: "quote_version_lines";
577
+ dataType: "number";
578
+ columnType: "PgInteger";
579
+ data: number;
580
+ driverParam: string | number;
581
+ notNull: true;
582
+ hasDefault: true;
583
+ isPrimaryKey: false;
584
+ isAutoincrement: false;
585
+ hasRuntimeDefault: false;
586
+ enumValues: undefined;
587
+ baseColumn: never;
588
+ identity: undefined;
589
+ generated: undefined;
590
+ }, {}, {}>;
591
+ currency: import("drizzle-orm/pg-core").PgColumn<{
592
+ name: "currency";
593
+ tableName: "quote_version_lines";
594
+ dataType: "string";
595
+ columnType: "PgText";
596
+ data: string;
597
+ driverParam: string;
598
+ notNull: true;
599
+ hasDefault: false;
600
+ isPrimaryKey: false;
601
+ isAutoincrement: false;
602
+ hasRuntimeDefault: false;
603
+ enumValues: [string, ...string[]];
604
+ baseColumn: never;
605
+ identity: undefined;
606
+ generated: undefined;
607
+ }, {}, {}>;
608
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
609
+ name: "created_at";
610
+ tableName: "quote_version_lines";
611
+ dataType: "date";
612
+ columnType: "PgTimestamp";
613
+ data: Date;
614
+ driverParam: string;
615
+ notNull: true;
616
+ hasDefault: true;
617
+ isPrimaryKey: false;
618
+ isAutoincrement: false;
619
+ hasRuntimeDefault: false;
620
+ enumValues: undefined;
621
+ baseColumn: never;
622
+ identity: undefined;
623
+ generated: undefined;
624
+ }, {}, {}>;
625
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
626
+ name: "updated_at";
627
+ tableName: "quote_version_lines";
628
+ dataType: "date";
629
+ columnType: "PgTimestamp";
630
+ data: Date;
631
+ driverParam: string;
632
+ notNull: true;
633
+ hasDefault: true;
634
+ isPrimaryKey: false;
635
+ isAutoincrement: false;
636
+ hasRuntimeDefault: false;
637
+ enumValues: undefined;
638
+ baseColumn: never;
639
+ identity: undefined;
640
+ generated: undefined;
641
+ }, {}, {}>;
642
+ }>, "where" | "orderBy">;
643
+ createQuoteVersionLine(db: PostgresJsDatabase, quoteVersionId: string, data: CreateQuoteVersionLineInput): Promise<{
644
+ id: string;
645
+ description: string;
646
+ createdAt: Date;
647
+ updatedAt: Date;
648
+ currency: string;
649
+ quoteVersionId: string;
650
+ productId: string | null;
651
+ supplierServiceId: string | null;
652
+ quantity: number;
653
+ unitPriceAmountCents: number;
654
+ totalAmountCents: number;
655
+ } | null | undefined>;
656
+ updateQuoteVersionLine(db: PostgresJsDatabase, id: string, data: UpdateQuoteVersionLineInput): Promise<{
657
+ id: string;
658
+ quoteVersionId: string;
659
+ productId: string | null;
660
+ supplierServiceId: string | null;
661
+ description: string;
662
+ quantity: number;
663
+ unitPriceAmountCents: number;
664
+ totalAmountCents: number;
665
+ currency: string;
666
+ createdAt: Date;
667
+ updatedAt: Date;
668
+ } | null>;
669
+ deleteQuoteVersionLine(db: PostgresJsDatabase, id: string): Promise<{
670
+ id: string;
671
+ } | null>;
672
+ };
673
+ export {};
674
+ //# sourceMappingURL=quote-versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote-versions.d.ts","sourceRoot":"","sources":["../../src/service/quote-versions.ts"],"names":[],"mappings":"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"}