@honestdigital/vehicle-service-types 1.0.0 → 1.0.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.

Potentially problematic release.


This version of @honestdigital/vehicle-service-types might be problematic. Click here for more details.

Files changed (57) hide show
  1. package/README.md +0 -1
  2. package/dist/config/database.d.ts +2 -6
  3. package/dist/config/database.d.ts.map +1 -1
  4. package/dist/config/redis.d.ts.map +1 -1
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/db/index.d.ts +1 -5
  7. package/dist/db/index.d.ts.map +1 -1
  8. package/dist/db/schema.d.ts +290 -31
  9. package/dist/db/schema.d.ts.map +1 -1
  10. package/dist/index.worker.d.ts +4 -0
  11. package/dist/index.worker.d.ts.map +1 -1
  12. package/dist/repositories/syncHistory.d.ts +1 -1
  13. package/dist/repositories/syncHistory.d.ts.map +1 -1
  14. package/dist/repositories/vehicleConfig.d.ts +2 -1
  15. package/dist/repositories/vehicleConfig.d.ts.map +1 -1
  16. package/dist/repositories/vehicleInventory.d.ts +13 -12
  17. package/dist/repositories/vehicleInventory.d.ts.map +1 -1
  18. package/dist/repositories/vehicleQuery.d.ts +16 -22
  19. package/dist/repositories/vehicleQuery.d.ts.map +1 -1
  20. package/dist/routers/index.d.ts +100 -51
  21. package/dist/routers/index.d.ts.map +1 -1
  22. package/dist/routers/inventory.d.ts +108 -51
  23. package/dist/routers/inventory.d.ts.map +1 -1
  24. package/dist/routers/sync.d.ts +1 -1
  25. package/dist/routers/sync.d.ts.map +1 -1
  26. package/dist/schemas/vehicle.schema.d.ts +662 -0
  27. package/dist/schemas/vehicle.schema.d.ts.map +1 -0
  28. package/dist/scripts/importUsedVehicles.d.ts +0 -7
  29. package/dist/scripts/importUsedVehicles.d.ts.map +1 -1
  30. package/dist/services/SearchQueryParser.d.ts +23 -0
  31. package/dist/services/SearchQueryParser.d.ts.map +1 -0
  32. package/dist/services/VehicleSearchService.d.ts +40 -0
  33. package/dist/services/VehicleSearchService.d.ts.map +1 -0
  34. package/dist/services/chromeImage.d.ts +9 -19
  35. package/dist/services/chromeImage.d.ts.map +1 -1
  36. package/dist/services/mmt.d.ts +0 -9
  37. package/dist/services/mmt.d.ts.map +1 -1
  38. package/dist/services/pricing.d.ts.map +1 -1
  39. package/dist/services/scheduler.d.ts +0 -38
  40. package/dist/services/scheduler.d.ts.map +1 -1
  41. package/dist/services/vehicleSqlBuilder.d.ts +43 -2
  42. package/dist/services/vehicleSqlBuilder.d.ts.map +1 -1
  43. package/dist/services/vehicleSync.d.ts.map +1 -1
  44. package/dist/services/vehicleTransformService.d.ts +33 -4
  45. package/dist/services/vehicleTransformService.d.ts.map +1 -1
  46. package/dist/trpc.d.ts +2 -2
  47. package/dist/trpc.d.ts.map +1 -1
  48. package/dist/types/filters.d.ts.map +1 -1
  49. package/dist/types/search.d.ts +442 -0
  50. package/dist/types/search.d.ts.map +1 -0
  51. package/dist/types/vehicle.d.ts +19 -115
  52. package/dist/types/vehicle.d.ts.map +1 -1
  53. package/dist/types.d.ts +4 -3
  54. package/dist/types.d.ts.map +1 -1
  55. package/dist/utilities/cache.d.ts +4 -0
  56. package/dist/utilities/cache.d.ts.map +1 -1
  57. package/package.json +10 -2
@@ -0,0 +1,40 @@
1
+ import type { SearchParams, SearchResult } from '../types/search';
2
+ type EnvBindings = {
3
+ POSTGRES_URL?: string;
4
+ REDIS_URL?: string;
5
+ REDIS_TOKEN?: string;
6
+ };
7
+ /**
8
+ * Service for vehicle full-text search operations.
9
+ *
10
+ * Leverages VehicleQueryRepository for base queries, adding:
11
+ * - Full-text search using PostgreSQL tsvector
12
+ * - Fuzzy matching with trigram similarity
13
+ * - Search relevance ranking
14
+ * - Tenant isolation (delegated to repository)
15
+ *
16
+ * NOTE: All query building, grouping, pagination logic is shared with getInventory via VehicleQueryRepository
17
+ */
18
+ export declare class VehicleSearchService {
19
+ private parser;
20
+ private queryRepo;
21
+ private sqlBuilder;
22
+ constructor();
23
+ /**
24
+ * Search vehicles with optional query and filters
25
+ * IMPORTANT: Always filtered by tenantId for multi-tenant isolation (handled by repository)
26
+ */
27
+ search(params: SearchParams, env?: EnvBindings): Promise<SearchResult>;
28
+ /**
29
+ * Convert VehicleFilters (make) to TransformedFilters (brand)
30
+ * Repository expects brand, not make
31
+ */
32
+ private convertToTransformedFilters;
33
+ /**
34
+ * Build SQL WHERE conditions for full-text search + fuzzy matching
35
+ * Returns array of SQL fragments to be added to base query
36
+ */
37
+ private buildSearchConditions;
38
+ }
39
+ export {};
40
+ //# sourceMappingURL=VehicleSearchService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VehicleSearchService.d.ts","sourceRoot":"","sources":["../../src/services/VehicleSearchService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGlE,KAAK,WAAW,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtF;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAoB;;IAQtC;;;OAGG;IACG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA0C5E;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAoB9B"}
@@ -1,15 +1,9 @@
1
1
  /**
2
2
  * Chrome Image Service
3
3
  * Handles fetching, caching, and storing vehicle images from Chrome API
4
- * Implements three-tier caching: session cache -> Redis -> database
4
+ * Implements two-tier caching: session cache -> database with bulk operations
5
5
  */
6
- interface ChromeImageData {
7
- multiView?: {
8
- [shotCode: string]: {
9
- [size: string]: string;
10
- };
11
- };
12
- }
6
+ import { type ChromeImageData } from '@/db/schema';
13
7
  export declare class ChromeImageService {
14
8
  private static instance;
15
9
  private sessionCache;
@@ -32,15 +26,10 @@ export declare class ChromeImageService {
32
26
  */
33
27
  private saveToDatabase;
34
28
  /**
35
- * Update existing database record
36
- */
37
- private updateDatabase;
38
- /**
39
- * Get or fetch chrome images with three-tier caching
29
+ * Get or fetch chrome images with two-tier caching (session -> database)
40
30
  * 1. Session cache (in-memory during sync)
41
- * 2. Redis cache
42
- * 3. Database cache
43
- * 4. Fetch from Chrome API
31
+ * 2. Database cache
32
+ * 3. Fetch from Chrome API
44
33
  */
45
34
  getOrFetchImages(chromeId: string): Promise<{
46
35
  galleryId: number | null;
@@ -59,7 +48,8 @@ export declare class ChromeImageService {
59
48
  };
60
49
  }>;
61
50
  /**
62
- * Batch fetch images for multiple vehicles and return as ChromeImage[] map
51
+ * Batch fetch images for multiple vehicles using bulk operations (1-3 queries total)
52
+ * Returns transformed ChromeImage[] map for each vehicle
63
53
  */
64
54
  batchFetchImagesForVehicles(chromeIds: string[]): Promise<Map<string, Array<{
65
55
  url: string;
@@ -70,9 +60,9 @@ export declare class ChromeImageService {
70
60
  };
71
61
  }>>>;
72
62
  /**
73
- * Batch fetch images for multiple vehicles (legacy - returns gallery IDs)
63
+ * Batch fetch images for multiple vehicles using bulk operations
64
+ * Legacy method - returns gallery IDs
74
65
  */
75
66
  batchFetchImages(chromeIds: string[]): Promise<Map<string, number>>;
76
67
  }
77
- export {};
78
68
  //# sourceMappingURL=chromeImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chromeImage.d.ts","sourceRoot":"","sources":["../../src/services/chromeImage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE;QACV,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;SACvB,CAAA;KACF,CAAA;CACF;AAQD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IACzD,OAAO,CAAC,YAAY,CAA8C;IAElE,OAAO;WAEO,WAAW,IAAI,kBAAkB;IAO/C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,eAAe;IAmB7B;;OAEG;YACW,cAAc;IAa5B;;OAEG;YACW,cAAc;IAW5B;;;;;;OAMG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACxB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;KAC/B,CAAC;IAwDF;;;OAGG;IACI,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;QACnE,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE;YACR,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAC;IAuDF;;OAEG;IACU,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QACvF,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7C,CAAC,CAAC,CAAC;IAkBJ;;OAEG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAcjF"}
1
+ {"version":3,"file":"chromeImage.d.ts","sourceRoot":"","sources":["../../src/services/chromeImage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,aAAa,CAAA;AAStE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IACzD,OAAO,CAAC,YAAY,CAA8C;IAElE,OAAO;WAEO,WAAW,IAAI,kBAAkB;IAO/C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;YACW,kBAAkB;IAiBhC;;OAEG;YACW,eAAe;IAmB7B;;OAEG;YACW,cAAc;IAa5B;;;;;OAKG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACvD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;QACxB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;KAC/B,CAAC;IAuCF;;;OAGG;IACI,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;QACnE,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE;YACR,QAAQ,EAAE,MAAM,CAAA;YAChB,IAAI,EAAE,MAAM,CAAA;SACb,CAAA;KACF,CAAC;IAuDF;;;OAGG;IACU,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CACpE,GAAG,CACD,MAAM,EACN,KAAK,CAAC;QACJ,GAAG,EAAE,MAAM,CAAA;QACX,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7C,CAAC,CACH,CACF;IAwFD;;;OAGG;IACU,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CA4EjF"}
@@ -52,7 +52,6 @@ export interface ConsolidatedMMT {
52
52
  }
53
53
  export declare class MMTService {
54
54
  private static instance;
55
- private readonly config;
56
55
  private readonly hierarchyCache;
57
56
  private readonly completeHierarchyCache;
58
57
  private constructor();
@@ -69,14 +68,6 @@ export declare class MMTService {
69
68
  * Gets Model-Trim relationships filtered by tenant
70
69
  */
71
70
  private getModelTrimRelationships;
72
- /**
73
- * Builds WHERE conditions for SQL queries with exclusion support
74
- */
75
- private buildWhereConditions;
76
- /**
77
- * Maps filter keys to database column names
78
- */
79
- private mapFilterKeyToDbColumn;
80
71
  /**
81
72
  * Validates model-trim pairs
82
73
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mmt.d.ts","sourceRoot":"","sources":["../../src/services/mmt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mmt.d.ts","sourceRoot":"","sources":["../../src/services/mmt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/services/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO;WAEO,WAAW,IAAI,cAAc;IAO3C;;OAEG;YACW,qBAAqB;IAwCnC;;OAEG;YACW,4BAA4B;IAwC1C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;OAEG;YACW,wBAAwB;IAmEtC;;OAEG;IACU,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BtF;;OAEG;IACU,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiD5F,OAAO,CAAC,0BAA0B;CAYnC"}
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/services/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAM9C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;QACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KACrB,CAAA;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,YAAY,GAAG,OAAO,CAAA;IACpC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,OAAO;WAEO,WAAW,IAAI,cAAc;IAO3C;;OAEG;YACW,qBAAqB;IAwCnC;;OAEG;YACW,4BAA4B;IAwC1C;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;OAEG;YACW,wBAAwB;IAmEtC;;OAEG;IACU,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6BtF;;OAEG;IACU,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiD5F,OAAO,CAAC,0BAA0B;CAYnC"}
@@ -1,39 +1 @@
1
- /**
2
- * Scheduler Service
3
- * Manages automated vehicle sync jobs using node-cron
4
- */
5
- export declare class SchedulerService {
6
- private static instance;
7
- private jobs;
8
- private syncService;
9
- private constructor();
10
- static getInstance(): SchedulerService;
11
- /**
12
- * Initialize scheduler with default jobs
13
- */
14
- initialize(): Promise<void>;
15
- /**
16
- * Sync all active tenants
17
- */
18
- private syncAllTenants;
19
- /**
20
- * Schedule a custom job
21
- */
22
- scheduleJob(name: string, schedule: string, task: () => Promise<void>): void;
23
- /**
24
- * Stop a scheduled job
25
- */
26
- stopJob(name: string): void;
27
- /**
28
- * Stop all scheduled jobs
29
- */
30
- stopAll(): void;
31
- /**
32
- * Get status of all jobs
33
- */
34
- getJobStatus(): {
35
- name: string;
36
- isRunning: boolean;
37
- }[];
38
- }
39
1
  //# sourceMappingURL=scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgC;IACvD,OAAO,CAAC,IAAI,CAA6C;IACzD,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO;WAIO,WAAW,IAAI,gBAAgB;IAO7C;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBxC;;OAEG;YACW,cAAc;IAmC5B;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAYnF;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IASlC;;OAEG;IACI,OAAO,IAAI,IAAI;IAQtB;;OAEG;IACI,YAAY,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE;CAM9D"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/services/scheduler.ts"],"names":[],"mappings":""}
@@ -1,5 +1,9 @@
1
- import type { HierarchicalFilters } from '@/types/filters';
2
- import type { TransformedFilters as BaseTransformedFilters, SortOption } from '@/types/filters';
1
+ /**
2
+ * Vehicle SQL Builder Service - Handles SQL query construction
3
+ * Extracted from CMS - Payload dependencies removed
4
+ */
5
+ import type { TransformedFilters as BaseTransformedFilters, HierarchicalFilters, SortOption } from '@/types/filters';
6
+ import type { SearchQueryParser } from './SearchQueryParser';
3
7
  export type SqlFragment = {
4
8
  text: string;
5
9
  values: unknown[];
@@ -43,5 +47,42 @@ export declare class VehicleSqlBuilder {
43
47
  * Converts hierarchical selectedMakeModelTrims to individual filter arrays
44
48
  */
45
49
  convertHierarchicalFilters(filters: Record<string, unknown>): BaseTransformedFilters;
50
+ /**
51
+ * Converts search-specific VehicleFilters to BaseTransformedFilters format
52
+ * Handles field name mapping and type conversions
53
+ */
54
+ buildSearchFilters(filters: {
55
+ make?: string[];
56
+ model?: string[];
57
+ trim?: string[];
58
+ year?: number[];
59
+ status?: string[];
60
+ location?: string[];
61
+ drivetrain?: string[];
62
+ doors?: number[];
63
+ fuelType?: string[];
64
+ bodyStyle?: string[];
65
+ exteriorColor?: string[];
66
+ interiorColor?: string[];
67
+ priceRange?: {
68
+ min?: number;
69
+ max?: number;
70
+ };
71
+ mileageRange?: {
72
+ min?: number;
73
+ max?: number;
74
+ };
75
+ }): BaseTransformedFilters;
76
+ /**
77
+ * Builds search conditions metadata for full-text search
78
+ * Returns structured data that can be used with either Drizzle or raw SQL
79
+ */
80
+ buildSearchConditions(searchQuery: string, parser: SearchQueryParser): {
81
+ tsQuery: string;
82
+ searchQuery: string;
83
+ similarity: {
84
+ threshold: number;
85
+ };
86
+ } | null;
46
87
  }
47
88
  //# sourceMappingURL=vehicleSqlBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicleSqlBuilder.d.ts","sourceRoot":"","sources":["../../src/services/vehicleSqlBuilder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EACV,kBAAkB,IAAI,sBAAsB,EAC5C,UAAU,EACX,MAAM,iBAAiB,CAAA;AA8BxB,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,CAAA;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IAExD,OAAO;WAEO,WAAW,IAAI,iBAAiB;IAI9C;;OAEG;IACI,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,EAAE;IAOjF;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACI,8BAA8B,CACnC,OAAO,EAAE,mBAAmB,GAC3B;QAAE,aAAa,EAAE,WAAW,EAAE,CAAC;QAAC,eAAe,EAAE,WAAW,EAAE,CAAA;KAAE;IAoCnE;;OAEG;IACI,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAInD;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM;IAK1D;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,WAAW;IAkBjE;;OAEG;IACI,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB;CA4B5F"}
1
+ {"version":3,"file":"vehicleSqlBuilder.d.ts","sourceRoot":"","sources":["../../src/services/vehicleSqlBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,kBAAkB,IAAI,sBAAsB,EAC5C,mBAAmB,EACnB,UAAU,EACX,MAAM,iBAAiB,CAAA;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAwC5D,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,CAAA;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAiC;IAExD,OAAO;WAEO,WAAW,IAAI,iBAAiB;IAI9C;;OAEG;IACI,0BAA0B,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,EAAE;IAOjF;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAmCvB;;OAEG;IACI,8BAA8B,CAAC,OAAO,EAAE,mBAAmB,GAAG;QACnE,aAAa,EAAE,WAAW,EAAE,CAAA;QAC5B,eAAe,EAAE,WAAW,EAAE,CAAA;KAC/B;IAoCD;;OAEG;IACI,eAAe,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM;IAInD;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM;IAK1D;;OAEG;IACI,mBAAmB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,WAAW;IAkBjE;;OAEG;IACI,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,sBAAsB;IAoC3F;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE;QACjC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;QACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;QACxB,UAAU,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC3C,YAAY,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAC9C,GAAG,sBAAsB;IAwC1B;;;OAGG;IACI,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,GACxB;QACD,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAClC,GAAG,IAAI;CAYT"}
@@ -1 +1 @@
1
- {"version":3,"file":"vehicleSync.d.ts","sourceRoot":"","sources":["../../src/services/vehicleSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAA0B,MAAM,cAAc,CAAA;AAkHnF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IAEzD,OAAO;WAEO,WAAW,IAAI,kBAAkB;IAO/C;;OAEG;YACW,uBAAuB;IA6BrC;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqHxB;;OAEG;IACU,sBAAsB,CACjC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,WAAsB,EACnC,GAAG,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EACzE,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,UAAU,CAAC;CAqRvB"}
1
+ {"version":3,"file":"vehicleSync.d.ts","sourceRoot":"","sources":["../../src/services/vehicleSync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAA0B,MAAM,cAAc,CAAA;AAqHnF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkC;IAEzD,OAAO;WAEO,WAAW,IAAI,kBAAkB;IAO/C;;OAEG;YACW,uBAAuB;IA6BrC;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkJxB;;OAEG;IACU,sBAAsB,CACjC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,WAAsB,EACnC,GAAG,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EACzE,kBAAkB,GAAE,OAAe,GAClC,OAAO,CAAC,UAAU,CAAC;CAqRvB"}
@@ -18,11 +18,34 @@ export type VehicleRow = {
18
18
  fuel_type?: string;
19
19
  body_style?: string;
20
20
  exterior_color?: string;
21
+ exterior_color_generic?: string;
22
+ exterior_color_code?: string;
23
+ exterior_color_hex?: string;
21
24
  interior_color?: string;
25
+ interior_color_generic?: string;
26
+ interior_color_code?: string;
27
+ interior_color_hex?: string;
22
28
  vin: string;
23
29
  stock_number?: string;
30
+ msrp?: string | number;
31
+ payment_offers?: any;
32
+ rebates?: any[];
24
33
  images?: string[];
25
34
  image_url?: string;
35
+ chrome_id?: string;
36
+ engine?: string;
37
+ transmission?: string;
38
+ city_mpg?: number;
39
+ highway_mpg?: number;
40
+ fuel_efficiency?: string;
41
+ features?: string[];
42
+ vehicle_options?: string;
43
+ date_in_stock?: string;
44
+ certified_pre_owned?: boolean;
45
+ description?: string;
46
+ dealership_name?: string;
47
+ additional_image_link?: string;
48
+ vehicle_link?: string;
26
49
  created_at?: string;
27
50
  updated_at?: string;
28
51
  tenant_id: number;
@@ -45,10 +68,6 @@ export declare class VehicleTransformService {
45
68
  private static instance;
46
69
  private constructor();
47
70
  static getInstance(): VehicleTransformService;
48
- /**
49
- * Parse a JSONB field that may be a string or already parsed object
50
- */
51
- private parseJsonField;
52
71
  /**
53
72
  * Transform chrome gallery data from JOIN into ChromeImage[] format
54
73
  */
@@ -74,5 +93,15 @@ export declare class VehicleTransformService {
74
93
  };
75
94
  getDbFieldName(tsFieldName: string): string;
76
95
  isValidVehicleColumn(dbFieldName: string): boolean;
96
+ /**
97
+ * Validate payment offers data against schema
98
+ * Returns null if validation fails to prevent corrupt data from being returned
99
+ */
100
+ private validatePaymentOffers;
101
+ /**
102
+ * Validate rebates array against schema
103
+ * Returns empty array if validation fails to prevent corrupt data from being returned
104
+ */
105
+ private validateRebates;
77
106
  }
78
107
  //# sourceMappingURL=vehicleTransformService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vehicleTransformService.d.ts","sourceRoot":"","sources":["../../src/services/vehicleTransformService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAuC9C,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,aAAa,CAAC,EAAE;QACd,MAAM,EAAE;YACN,SAAS,EAAE;gBACT,IAAI,EAAE;oBACJ,SAAS,EAAE,MAAM,CAAA;oBACjB,SAAS,EAAE,MAAM,CAAA;oBACjB,UAAU,EAAE,MAAM,CAAA;oBAClB,WAAW,EAAE,MAAM,CAAA;iBACpB,CAAA;aACF,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAE9D,OAAO;WAEO,WAAW,IAAI,uBAAuB;IAIpD;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuD9B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA8D1B,2BAA2B,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,UAAQ,GAAG,OAAO;IAsDvE,6BAA6B,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,eAAe,UAAQ,GAAG,OAAO,EAAE;IAIrF,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;;;;;;;IAWlE,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG1D"}
1
+ {"version":3,"file":"vehicleTransformService.d.ts","sourceRoot":"","sources":["../../src/services/vehicleTransformService.ts"],"names":[],"mappings":"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"}
package/dist/trpc.d.ts CHANGED
@@ -13,13 +13,13 @@ export declare const router: import("@trpc/server").TRPCRouterBuilder<{
13
13
  message: string;
14
14
  code: import("@trpc/server").TRPC_ERROR_CODE_NUMBER;
15
15
  };
16
- transformer: false;
16
+ transformer: true;
17
17
  }>;
18
18
  export declare const publicProcedure: import("@trpc/server").TRPCProcedureBuilder<TRPCContext, object, {}, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
19
19
  export declare const tenantProcedure: import("@trpc/server").TRPCProcedureBuilder<TRPCContext, object, {
20
- req: import("hono").HonoRequest<any, unknown>;
21
20
  tenantId: number;
22
21
  tenantSlug: string | null;
23
22
  env: import("@/context").Bindings;
23
+ req: import("hono").HonoRequest<any, unknown>;
24
24
  }, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, import("@trpc/server").TRPCUnsetMarker, false>;
25
25
  //# sourceMappingURL=trpc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.d.ts","sourceRoot":"","sources":["../src/trpc.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAyF5C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;EAAW,CAAA;AAG9B,eAAO,MAAM,eAAe,6OAAsD,CAAA;AAGlF,eAAO,MAAM,eAAe;;;;;yKAAqC,CAAA"}
1
+ {"version":3,"file":"trpc.d.ts","sourceRoot":"","sources":["../src/trpc.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AA4F5C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;EAAW,CAAA;AAG9B,eAAO,MAAM,eAAe,6OAAsD,CAAA;AAGlF,eAAO,MAAM,eAAe;;;;;yKAAqC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/types/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../src/types/filters.ts"],"names":[],"mappings":"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"}