@voyant-travel/quotes 0.119.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.
Files changed (51) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +39 -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 +87 -0
  6. package/dist/index.d.ts +16 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +32 -0
  9. package/dist/routes/index.d.ts +1410 -0
  10. package/dist/routes/index.d.ts.map +1 -0
  11. package/dist/routes/index.js +8 -0
  12. package/dist/routes/pipelines.d.ts +292 -0
  13. package/dist/routes/pipelines.d.ts.map +1 -0
  14. package/dist/routes/pipelines.js +59 -0
  15. package/dist/routes/quote-versions.d.ts +746 -0
  16. package/dist/routes/quote-versions.d.ts.map +1 -0
  17. package/dist/routes/quote-versions.js +175 -0
  18. package/dist/routes/quotes.d.ts +391 -0
  19. package/dist/routes/quotes.d.ts.map +1 -0
  20. package/dist/routes/quotes.js +70 -0
  21. package/dist/schema-relations.d.ts +30 -0
  22. package/dist/schema-relations.d.ts.map +1 -0
  23. package/dist/schema-relations.js +49 -0
  24. package/dist/schema-sales.d.ts +1511 -0
  25. package/dist/schema-sales.d.ts.map +1 -0
  26. package/dist/schema-sales.js +164 -0
  27. package/dist/schema-shared.d.ts +5 -0
  28. package/dist/schema-shared.d.ts.map +1 -0
  29. package/dist/schema-shared.js +18 -0
  30. package/dist/schema.d.ts +5 -0
  31. package/dist/schema.d.ts.map +1 -0
  32. package/dist/schema.js +4 -0
  33. package/dist/service/helpers.d.ts +22 -0
  34. package/dist/service/helpers.d.ts.map +1 -0
  35. package/dist/service/helpers.js +39 -0
  36. package/dist/service/index.d.ts +1734 -0
  37. package/dist/service/index.d.ts.map +1 -0
  38. package/dist/service/index.js +11 -0
  39. package/dist/service/pipelines.d.ts +113 -0
  40. package/dist/service/pipelines.d.ts.map +1 -0
  41. package/dist/service/pipelines.js +68 -0
  42. package/dist/service/quote-versions.d.ts +674 -0
  43. package/dist/service/quote-versions.d.ts.map +1 -0
  44. package/dist/service/quote-versions.js +400 -0
  45. package/dist/service/quotes.d.ts +826 -0
  46. package/dist/service/quotes.d.ts.map +1 -0
  47. package/dist/service/quotes.js +110 -0
  48. package/dist/validation.d.ts +2 -0
  49. package/dist/validation.d.ts.map +1 -0
  50. package/dist/validation.js +1 -0
  51. package/package.json +72 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIzB,CAAA;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,YAAY,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACrF,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { pipelinesService } from "./pipelines.js";
2
+ import { quoteVersionsService } from "./quote-versions.js";
3
+ import { quotesService as quoteRecordsService } from "./quotes.js";
4
+ export const quotesService = {
5
+ ...pipelinesService,
6
+ ...quoteRecordsService,
7
+ ...quoteVersionsService,
8
+ };
9
+ export { pipelinesService } from "./pipelines.js";
10
+ export { QuoteVersionConflictError, quoteVersionsService } from "./quote-versions.js";
11
+ export { quotesService as quoteRecordsService } from "./quotes.js";
@@ -0,0 +1,113 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { z } from "zod";
3
+ import type { insertPipelineSchema, insertStageSchema, pipelineListQuerySchema, stageListQuerySchema, updatePipelineSchema, updateStageSchema } from "../validation.js";
4
+ type PipelineListQuery = z.infer<typeof pipelineListQuerySchema>;
5
+ type CreatePipelineInput = z.infer<typeof insertPipelineSchema>;
6
+ type UpdatePipelineInput = z.infer<typeof updatePipelineSchema>;
7
+ type StageListQuery = z.infer<typeof stageListQuerySchema>;
8
+ type CreateStageInput = z.infer<typeof insertStageSchema>;
9
+ type UpdateStageInput = z.infer<typeof updateStageSchema>;
10
+ export declare const pipelinesService: {
11
+ listPipelines(db: PostgresJsDatabase, query: PipelineListQuery): Promise<{
12
+ data: {
13
+ id: string;
14
+ entityType: "quote" | "organization" | "person" | "activity";
15
+ name: string;
16
+ isDefault: boolean;
17
+ sortOrder: number;
18
+ createdAt: Date;
19
+ updatedAt: Date;
20
+ }[];
21
+ total: number;
22
+ limit: number;
23
+ offset: number;
24
+ }>;
25
+ getPipelineById(db: PostgresJsDatabase, id: string): Promise<{
26
+ id: string;
27
+ entityType: "quote" | "organization" | "person" | "activity";
28
+ name: string;
29
+ isDefault: boolean;
30
+ sortOrder: number;
31
+ createdAt: Date;
32
+ updatedAt: Date;
33
+ } | null>;
34
+ createPipeline(db: PostgresJsDatabase, data: CreatePipelineInput): Promise<{
35
+ name: string;
36
+ createdAt: Date;
37
+ updatedAt: Date;
38
+ id: string;
39
+ entityType: "quote" | "organization" | "person" | "activity";
40
+ isDefault: boolean;
41
+ sortOrder: number;
42
+ } | undefined>;
43
+ updatePipeline(db: PostgresJsDatabase, id: string, data: UpdatePipelineInput): Promise<{
44
+ id: string;
45
+ entityType: "quote" | "organization" | "person" | "activity";
46
+ name: string;
47
+ isDefault: boolean;
48
+ sortOrder: number;
49
+ createdAt: Date;
50
+ updatedAt: Date;
51
+ } | null>;
52
+ deletePipeline(db: PostgresJsDatabase, id: string): Promise<{
53
+ id: string;
54
+ } | null>;
55
+ listStages(db: PostgresJsDatabase, query: StageListQuery): Promise<{
56
+ data: {
57
+ id: string;
58
+ pipelineId: string;
59
+ name: string;
60
+ sortOrder: number;
61
+ probability: number | null;
62
+ isClosed: boolean;
63
+ isWon: boolean;
64
+ isLost: boolean;
65
+ createdAt: Date;
66
+ updatedAt: Date;
67
+ }[];
68
+ total: number;
69
+ limit: number;
70
+ offset: number;
71
+ }>;
72
+ getStageById(db: PostgresJsDatabase, id: string): Promise<{
73
+ id: string;
74
+ pipelineId: string;
75
+ name: string;
76
+ sortOrder: number;
77
+ probability: number | null;
78
+ isClosed: boolean;
79
+ isWon: boolean;
80
+ isLost: boolean;
81
+ createdAt: Date;
82
+ updatedAt: Date;
83
+ } | null>;
84
+ createStage(db: PostgresJsDatabase, data: CreateStageInput): Promise<{
85
+ name: string;
86
+ createdAt: Date;
87
+ updatedAt: Date;
88
+ id: string;
89
+ sortOrder: number;
90
+ pipelineId: string;
91
+ probability: number | null;
92
+ isClosed: boolean;
93
+ isWon: boolean;
94
+ isLost: boolean;
95
+ } | undefined>;
96
+ updateStage(db: PostgresJsDatabase, id: string, data: UpdateStageInput): Promise<{
97
+ id: string;
98
+ pipelineId: string;
99
+ name: string;
100
+ sortOrder: number;
101
+ probability: number | null;
102
+ isClosed: boolean;
103
+ isWon: boolean;
104
+ isLost: boolean;
105
+ createdAt: Date;
106
+ updatedAt: Date;
107
+ } | null>;
108
+ deleteStage(db: PostgresJsDatabase, id: string): Promise<{
109
+ id: string;
110
+ } | null>;
111
+ };
112
+ export {};
113
+ //# sourceMappingURL=pipelines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../src/service/pipelines.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAChE,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,KAAK,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC/D,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAC1D,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AACzD,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAEzD,eAAO,MAAM,gBAAgB;sBACH,kBAAkB,SAAS,iBAAiB;;;;;;;;;;;;;;wBAgB1C,kBAAkB,MAAM,MAAM;;;;;;;;;uBAK/B,kBAAkB,QAAQ,mBAAmB;;;;;;;;;uBAK7C,kBAAkB,MAAM,MAAM,QAAQ,mBAAmB;;;;;;;;;uBASzD,kBAAkB,MAAM,MAAM;;;mBAQlC,kBAAkB,SAAS,cAAc;;;;;;;;;;;;;;;;;qBAgBvC,kBAAkB,MAAM,MAAM;;;;;;;;;;;;oBAK/B,kBAAkB,QAAQ,gBAAgB;;;;;;;;;;;;oBAK1C,kBAAkB,MAAM,MAAM,QAAQ,gBAAgB;;;;;;;;;;;;oBAStD,kBAAkB,MAAM,MAAM;;;CAIrD,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { eq, sql } from "drizzle-orm";
2
+ import { pipelines, stages } from "../schema.js";
3
+ import { paginate } from "./helpers.js";
4
+ export const pipelinesService = {
5
+ async listPipelines(db, query) {
6
+ const where = query.entityType ? eq(pipelines.entityType, query.entityType) : undefined;
7
+ return paginate(db
8
+ .select()
9
+ .from(pipelines)
10
+ .where(where)
11
+ .limit(query.limit)
12
+ .offset(query.offset)
13
+ .orderBy(pipelines.sortOrder, pipelines.createdAt), db.select({ count: sql `count(*)::int` }).from(pipelines).where(where), query.limit, query.offset);
14
+ },
15
+ async getPipelineById(db, id) {
16
+ const [row] = await db.select().from(pipelines).where(eq(pipelines.id, id)).limit(1);
17
+ return row ?? null;
18
+ },
19
+ async createPipeline(db, data) {
20
+ const [row] = await db.insert(pipelines).values(data).returning();
21
+ return row;
22
+ },
23
+ async updatePipeline(db, id, data) {
24
+ const [row] = await db
25
+ .update(pipelines)
26
+ .set({ ...data, updatedAt: new Date() })
27
+ .where(eq(pipelines.id, id))
28
+ .returning();
29
+ return row ?? null;
30
+ },
31
+ async deletePipeline(db, id) {
32
+ const [row] = await db
33
+ .delete(pipelines)
34
+ .where(eq(pipelines.id, id))
35
+ .returning({ id: pipelines.id });
36
+ return row ?? null;
37
+ },
38
+ async listStages(db, query) {
39
+ const where = query.pipelineId ? eq(stages.pipelineId, query.pipelineId) : undefined;
40
+ return paginate(db
41
+ .select()
42
+ .from(stages)
43
+ .where(where)
44
+ .limit(query.limit)
45
+ .offset(query.offset)
46
+ .orderBy(stages.sortOrder, stages.createdAt), db.select({ count: sql `count(*)::int` }).from(stages).where(where), query.limit, query.offset);
47
+ },
48
+ async getStageById(db, id) {
49
+ const [row] = await db.select().from(stages).where(eq(stages.id, id)).limit(1);
50
+ return row ?? null;
51
+ },
52
+ async createStage(db, data) {
53
+ const [row] = await db.insert(stages).values(data).returning();
54
+ return row;
55
+ },
56
+ async updateStage(db, id, data) {
57
+ const [row] = await db
58
+ .update(stages)
59
+ .set({ ...data, updatedAt: new Date() })
60
+ .where(eq(stages.id, id))
61
+ .returning();
62
+ return row ?? null;
63
+ },
64
+ async deleteStage(db, id) {
65
+ const [row] = await db.delete(stages).where(eq(stages.id, id)).returning({ id: stages.id });
66
+ return row ?? null;
67
+ },
68
+ };