@superbright/indexeddb-orm 1.0.1 → 1.0.3

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 (130) hide show
  1. package/README.md +5 -5
  2. package/dist/adapters/structured-store.cjs +1 -1
  3. package/dist/adapters/structured-store.cjs.map +1 -1
  4. package/dist/adapters/structured-store.d.ts +1 -1
  5. package/dist/adapters/structured-store.mjs +1 -1
  6. package/dist/adapters/structured-store.mjs.map +1 -1
  7. package/dist/adapters/zustand-store.cjs +1 -1
  8. package/dist/adapters/zustand-store.cjs.map +1 -1
  9. package/dist/adapters/zustand-store.mjs +12 -11
  10. package/dist/adapters/zustand-store.mjs.map +1 -1
  11. package/dist/base/amenityimagesonproperty.cjs +2 -0
  12. package/dist/base/amenityimagesonproperty.cjs.map +1 -0
  13. package/dist/base/amenityimagesonproperty.d.ts +11 -0
  14. package/dist/base/amenityimagesonproperty.mjs +9 -0
  15. package/dist/base/amenityimagesonproperty.mjs.map +1 -0
  16. package/dist/base/enums.cjs +2 -0
  17. package/dist/base/enums.cjs.map +1 -0
  18. package/dist/base/enums.d.ts +69 -0
  19. package/dist/base/enums.mjs +14 -0
  20. package/dist/base/enums.mjs.map +1 -0
  21. package/dist/base/favoriteunit.cjs +2 -0
  22. package/dist/base/favoriteunit.cjs.map +1 -0
  23. package/dist/base/favoriteunit.d.ts +14 -0
  24. package/dist/base/favoriteunit.mjs +10 -0
  25. package/dist/base/favoriteunit.mjs.map +1 -0
  26. package/dist/base/floorplan.cjs +2 -0
  27. package/dist/base/floorplan.cjs.map +1 -0
  28. package/dist/base/floorplan.d.ts +26 -0
  29. package/dist/base/floorplan.mjs +14 -0
  30. package/dist/base/floorplan.mjs.map +1 -0
  31. package/dist/base/index.d.ts +14 -0
  32. package/dist/base/media.cjs +2 -0
  33. package/dist/base/media.cjs.map +1 -0
  34. package/dist/base/media.d.ts +81 -0
  35. package/dist/base/media.mjs +33 -0
  36. package/dist/base/media.mjs.map +1 -0
  37. package/dist/base/overviewimagesonproperty.cjs +2 -0
  38. package/dist/base/overviewimagesonproperty.cjs.map +1 -0
  39. package/dist/base/overviewimagesonproperty.d.ts +11 -0
  40. package/dist/base/overviewimagesonproperty.mjs +9 -0
  41. package/dist/base/overviewimagesonproperty.mjs.map +1 -0
  42. package/dist/base/property.cjs +2 -0
  43. package/dist/base/property.cjs.map +1 -0
  44. package/dist/base/property.d.ts +60 -0
  45. package/dist/base/property.mjs +26 -0
  46. package/dist/base/property.mjs.map +1 -0
  47. package/dist/base/propertyamenity.cjs +2 -0
  48. package/dist/base/propertyamenity.cjs.map +1 -0
  49. package/dist/base/propertyamenity.d.ts +14 -0
  50. package/dist/base/propertyamenity.mjs +10 -0
  51. package/dist/base/propertyamenity.mjs.map +1 -0
  52. package/dist/base/propertyhighlight.cjs +2 -0
  53. package/dist/base/propertyhighlight.cjs.map +1 -0
  54. package/dist/base/propertyhighlight.d.ts +14 -0
  55. package/dist/base/propertyhighlight.mjs +10 -0
  56. package/dist/base/propertyhighlight.mjs.map +1 -0
  57. package/dist/base/renderedstyle.cjs +2 -0
  58. package/dist/base/renderedstyle.cjs.map +1 -0
  59. package/dist/base/renderedstyle.d.ts +20 -0
  60. package/dist/base/renderedstyle.mjs +12 -0
  61. package/dist/base/renderedstyle.mjs.map +1 -0
  62. package/dist/base/room.cjs +2 -0
  63. package/dist/base/room.cjs.map +1 -0
  64. package/dist/base/room.d.ts +20 -0
  65. package/dist/base/room.mjs +12 -0
  66. package/dist/base/room.mjs.map +1 -0
  67. package/dist/base/style.cjs +2 -0
  68. package/dist/base/style.cjs.map +1 -0
  69. package/dist/base/style.d.ts +17 -0
  70. package/dist/base/style.mjs +11 -0
  71. package/dist/base/style.mjs.map +1 -0
  72. package/dist/base/unit.cjs +2 -0
  73. package/dist/base/unit.cjs.map +1 -0
  74. package/dist/base/unit.d.ts +57 -0
  75. package/dist/base/unit.mjs +25 -0
  76. package/dist/base/unit.mjs.map +1 -0
  77. package/dist/base/user.cjs +2 -0
  78. package/dist/base/user.cjs.map +1 -0
  79. package/dist/base/user.d.ts +27 -0
  80. package/dist/base/user.mjs +15 -0
  81. package/dist/base/user.mjs.map +1 -0
  82. package/dist/features/analytics/MixpanelProvider.cjs +2 -0
  83. package/dist/features/analytics/MixpanelProvider.cjs.map +1 -0
  84. package/dist/features/analytics/MixpanelProvider.mjs +44 -0
  85. package/dist/features/analytics/MixpanelProvider.mjs.map +1 -0
  86. package/dist/features/analytics/analytics.cjs +2 -0
  87. package/dist/features/analytics/analytics.cjs.map +1 -0
  88. package/dist/features/analytics/analytics.d.ts +14 -12
  89. package/dist/features/analytics/analytics.mjs +230 -0
  90. package/dist/features/analytics/analytics.mjs.map +1 -0
  91. package/dist/features/analytics/generateUserUUID.cjs +2 -0
  92. package/dist/features/analytics/generateUserUUID.cjs.map +1 -0
  93. package/dist/features/analytics/generateUserUUID.mjs +6 -0
  94. package/dist/features/analytics/generateUserUUID.mjs.map +1 -0
  95. package/dist/features/filters/transformers.cjs +2 -0
  96. package/dist/features/filters/transformers.cjs.map +1 -0
  97. package/dist/features/filters/transformers.d.ts +31 -0
  98. package/dist/features/filters/transformers.mjs +110 -0
  99. package/dist/features/filters/transformers.mjs.map +1 -0
  100. package/dist/features/units/transformers.cjs +1 -1
  101. package/dist/features/units/transformers.cjs.map +1 -1
  102. package/dist/features/units/transformers.d.ts +12 -10
  103. package/dist/features/units/transformers.mjs +42 -38
  104. package/dist/features/units/transformers.mjs.map +1 -1
  105. package/dist/index.cjs +1 -1
  106. package/dist/index.d.ts +3 -0
  107. package/dist/index.mjs +102 -49
  108. package/dist/index.mjs.map +1 -1
  109. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs +1 -1
  110. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs.map +1 -1
  111. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs +68 -67
  112. package/dist/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs.map +1 -1
  113. package/dist/schema.cjs +1 -1
  114. package/dist/schema.cjs.map +1 -1
  115. package/dist/schema.d.ts +754 -715
  116. package/dist/schema.mjs +104 -101
  117. package/dist/schema.mjs.map +1 -1
  118. package/dist/stores/store.cjs +1 -1
  119. package/dist/stores/store.cjs.map +1 -1
  120. package/dist/stores/store.mjs +229 -240
  121. package/dist/stores/store.mjs.map +1 -1
  122. package/dist/utils/casing.cjs +2 -0
  123. package/dist/utils/casing.cjs.map +1 -0
  124. package/dist/utils/casing.mjs +12 -0
  125. package/dist/utils/casing.mjs.map +1 -0
  126. package/dist/utils/collections.cjs +2 -0
  127. package/dist/utils/collections.cjs.map +1 -0
  128. package/dist/utils/collections.mjs +13 -0
  129. package/dist/utils/collections.mjs.map +1 -0
  130. package/package.json +1 -1
package/README.md CHANGED
@@ -81,7 +81,7 @@ function MyComponent() {
81
81
 
82
82
  // Filter actions
83
83
  const updateFilters = async () => {
84
- await store.filters.set({ bedrooms: [1, 2] });
84
+ await store.filters.set({ qty_bedrooms: [1, 2] });
85
85
  await store.filters.submit();
86
86
  };
87
87
 
@@ -153,7 +153,7 @@ store.filters.set(filters: Partial<Filters>)
153
153
  store.filters.setTemp(filters: Partial<Filters>)
154
154
  store.filters.setToDefault()
155
155
  store.filters.commitTemp(key, defaultValue)
156
- store.filters.commitAvailability()
156
+ store.filters.commitDateAvailability()
157
157
  store.filters.submit()
158
158
  ```
159
159
 
@@ -189,8 +189,8 @@ await store.setUnitResults(transformedUnits.hits);
189
189
  await store.clearUnitResults();
190
190
 
191
191
  // Filters
192
- await store.setFilters({ bedrooms: [1, 2] });
193
- await store.setTempFilters({ cost: 2500 });
192
+ await store.setFilters({ qty_bedrooms: [1, 2] });
193
+ await store.setTempFilters({ base_price: 2500 });
194
194
  await store.submitFilterUpdate();
195
195
  ```
196
196
 
@@ -244,7 +244,7 @@ pnpm dev
244
244
  1. **Start with Database Operations**: Click "Initialize Database" to set up the ORM
245
245
  2. **Create a Property**: Enter a property ID and slug, then click "Initialize Property"
246
246
  3. **Test Unit Actions**: Enter a unit ID and try toggling favorites or marking as viewed
247
- 4. **Experiment with Filters**: Set bedroom counts and cost filters, then submit them
247
+ 4. **Experiment with Filters**: Set bedroom counts and base price filters, then submit them
248
248
  5. **View State Changes**: Watch the real-time state updates and action logs
249
249
  6. **Inspect Database**: Open browser DevTools to see the actual IndexedDB storage
250
250
 
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./zustand-store.cjs");function u(t,i){return{property:{unit:{favorites:{toggle:t.toggleFavorite.bind(t)},viewed:{mark:t.markUnitAsViewed.bind(t)}},questionnaire:{setResults:t.setQuestionnaireResults.bind(t)},tour:{setContactedOn:t.setTourContactedOn.bind(t),getContactedOn:t.getTourContactedOn.bind(t),setContactData:t.setTourContactData.bind(t)}},filters:{set:t.setFilters.bind(t),setTemp:t.setTempFilters.bind(t),setToDefault:t.setFiltersToDefault.bind(t),commitTemp:async(e,n)=>{const c=(i?i():t).tempFilters[e]??n;await t.handleTempFilterChange(e,c),await t.submitFilterUpdate()},commitAvailability:async()=>{await t.submitFilterUpdate()},submit:t.submitFilterUpdate.bind(t)}}}function d(t){return(i,e)=>{const n=r.createZustandUnifiedStore(t)(i,e),a=u(n,e);return{...n,...a}}}exports.createStructuredStore=d;exports.createStructuredStoreActions=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./zustand-store.cjs");function u(t,i){return{property:{unit:{favorites:{toggle:t.toggleFavorite.bind(t)},viewed:{mark:t.markUnitAsViewed.bind(t)}},questionnaire:{setResults:t.setQuestionnaireResults.bind(t)},tour:{setContactedOn:t.setTourContactedOn.bind(t),getContactedOn:t.getTourContactedOn.bind(t),setContactData:t.setTourContactData.bind(t)}},filters:{set:t.setFilters.bind(t),setTemp:t.setTempFilters.bind(t),setToDefault:t.setFiltersToDefault.bind(t),commitTemp:async(e,n)=>{const c=(i?i():t).tempFilters[e]??n;await t.handleTempFilterChange(e,c),await t.submitFilterUpdate()},commitDateAvailability:async()=>{await t.submitFilterUpdate()},submit:t.submitFilterUpdate.bind(t)}}}function d(t){return(i,e)=>{const n=r.createZustandUnifiedStore(t)(i,e),a=u(n,e);return{...n,...a}}}exports.createStructuredStore=d;exports.createStructuredStoreActions=u;
2
2
  //# sourceMappingURL=structured-store.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"structured-store.cjs","sources":["../../src/adapters/structured-store.ts"],"sourcesContent":["/**\n * Structured store wrapper (preferred DX)\n *\n * This layer wraps the flat Zustand adapter with domain‑grouped actions\n * for a more discoverable API in apps. It does not add new behavior —\n * it simply organizes calls like:\n * - `property.unit.favorites.toggle` → `toggleFavorite`\n * - `property.unit.viewed.mark` → `markUnitAsViewed`\n * - `filters.set/submit/...` → filter methods\n */\nimport {\n type ZustandUnifiedStoreState,\n createZustandUnifiedStore,\n type Filters,\n type UnitData,\n type TourContactData,\n type QueryParams\n} from \"./zustand-store\";\n\nexport interface StructuredStoreActions {\n property: {\n unit: {\n favorites: {\n toggle: (unitId: string) => Promise<void>;\n };\n viewed: {\n mark: (unitId: string, slug: string) => Promise<void>;\n };\n };\n questionnaire: {\n setResults: (results: unknown) => Promise<void>;\n };\n tour: {\n setContactedOn: () => Promise<void>;\n getContactedOn: () => Promise<string | null>;\n setContactData: (data: TourContactData) => Promise<void>;\n };\n };\n\n filters: {\n set: (filters: Partial<Filters>) => Promise<void>;\n setTemp: (filters: Partial<Filters>) => Promise<void>;\n setToDefault: () => Promise<void>;\n commitTemp: <K extends keyof Filters>(key: K, defaultValue: Filters[K]) => Promise<void>;\n commitAvailability: () => Promise<void>;\n submit: () => Promise<void>;\n };\n}\n\nexport function createStructuredStoreActions(store: ZustandUnifiedStoreState, get?: () => ZustandUnifiedStoreState): StructuredStoreActions {\n return {\n property: {\n unit: {\n favorites: {\n toggle: store.toggleFavorite.bind(store),\n },\n viewed: {\n mark: store.markUnitAsViewed.bind(store),\n },\n },\n questionnaire: {\n setResults: store.setQuestionnaireResults.bind(store),\n },\n tour: {\n setContactedOn: store.setTourContactedOn.bind(store),\n getContactedOn: store.getTourContactedOn.bind(store),\n setContactData: store.setTourContactData.bind(store),\n },\n },\n filters: {\n set: store.setFilters.bind(store),\n setTemp: store.setTempFilters.bind(store),\n setToDefault: store.setFiltersToDefault.bind(store),\n commitTemp: async (key, defaultValue) => {\n const state = get ? get() : (store as unknown as ZustandUnifiedStoreState);\n const value = (state.tempFilters as Filters)[key] ?? defaultValue;\n await store.handleTempFilterChange(key, value as any);\n await store.submitFilterUpdate();\n },\n commitAvailability: async () => {\n await store.submitFilterUpdate();\n },\n submit: store.submitFilterUpdate.bind(store),\n },\n };\n}\n\nexport type StructuredStore = ZustandUnifiedStoreState & StructuredStoreActions;\n\nexport function createStructuredStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): StructuredStore => {\n const baseStore = createZustandUnifiedStore(options)(set, get);\n const actions = createStructuredStoreActions(baseStore, get);\n\n return {\n ...baseStore,\n ...actions,\n };\n };\n}\n"],"names":["createStructuredStoreActions","store","get","key","defaultValue","value","createStructuredStore","options","set","baseStore","createZustandUnifiedStore","actions"],"mappings":"uHAiDO,SAASA,EAA6BC,EAAiCC,EAA8D,CAC1I,MAAO,CACL,SAAU,CACR,KAAM,CACJ,UAAW,CACT,OAAQD,EAAM,eAAe,KAAKA,CAAK,CAAA,EAEzC,OAAQ,CACN,KAAMA,EAAM,iBAAiB,KAAKA,CAAK,CAAA,CACzC,EAEF,cAAe,CACb,WAAYA,EAAM,wBAAwB,KAAKA,CAAK,CAAA,EAEtD,KAAM,CACJ,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,EACnD,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,EACnD,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,CAAA,CACrD,EAEF,QAAS,CACP,IAAKA,EAAM,WAAW,KAAKA,CAAK,EAChC,QAASA,EAAM,eAAe,KAAKA,CAAK,EACxC,aAAcA,EAAM,oBAAoB,KAAKA,CAAK,EAClD,WAAY,MAAOE,EAAKC,IAAiB,CAEvC,MAAMC,GADQH,EAAMA,EAAA,EAASD,GACR,YAAwBE,CAAG,GAAKC,EACrD,MAAMH,EAAM,uBAAuBE,EAAKE,CAAY,EACpD,MAAMJ,EAAM,mBAAA,CACd,EACA,mBAAoB,SAAY,CAC9B,MAAMA,EAAM,mBAAA,CACd,EACA,OAAQA,EAAM,mBAAmB,KAAKA,CAAK,CAAA,CAC7C,CAEJ,CAIO,SAASK,EAAsBC,EAEnC,CACD,MAAO,CAACC,EAAUN,IAA8B,CAC9C,MAAMO,EAAYC,EAAAA,0BAA0BH,CAAO,EAAEC,EAAKN,CAAG,EACvDS,EAAUX,EAA6BS,EAAWP,CAAG,EAE3D,MAAO,CACL,GAAGO,EACH,GAAGE,CAAA,CAEP,CACF"}
1
+ {"version":3,"file":"structured-store.cjs","sources":["../../src/adapters/structured-store.ts"],"sourcesContent":["/**\n * Structured store wrapper (preferred DX)\n *\n * This layer wraps the flat Zustand adapter with domain‑grouped actions\n * for a more discoverable API in apps. It does not add new behavior —\n * it simply organizes calls like:\n * - `property.unit.favorites.toggle` → `toggleFavorite`\n * - `property.unit.viewed.mark` → `markUnitAsViewed`\n * - `filters.set/submit/...` → filter methods\n */\nimport {\n type ZustandUnifiedStoreState,\n createZustandUnifiedStore,\n type Filters,\n type UnitData,\n type TourContactData,\n type QueryParams\n} from \"./zustand-store\";\n\nexport interface StructuredStoreActions {\n property: {\n unit: {\n favorites: {\n toggle: (unitId: string) => Promise<void>;\n };\n viewed: {\n mark: (unitId: string, slug: string) => Promise<void>;\n };\n };\n questionnaire: {\n setResults: (results: unknown) => Promise<void>;\n };\n tour: {\n setContactedOn: () => Promise<void>;\n getContactedOn: () => Promise<string | null>;\n setContactData: (data: TourContactData) => Promise<void>;\n };\n };\n\n filters: {\n set: (filters: Partial<Filters>) => Promise<void>;\n setTemp: (filters: Partial<Filters>) => Promise<void>;\n setToDefault: () => Promise<void>;\n commitTemp: <K extends keyof Filters>(key: K, defaultValue: Filters[K]) => Promise<void>;\n commitDateAvailability: () => Promise<void>;\n submit: () => Promise<void>;\n };\n}\n\nexport function createStructuredStoreActions(store: ZustandUnifiedStoreState, get?: () => ZustandUnifiedStoreState): StructuredStoreActions {\n return {\n property: {\n unit: {\n favorites: {\n toggle: store.toggleFavorite.bind(store),\n },\n viewed: {\n mark: store.markUnitAsViewed.bind(store),\n },\n },\n questionnaire: {\n setResults: store.setQuestionnaireResults.bind(store),\n },\n tour: {\n setContactedOn: store.setTourContactedOn.bind(store),\n getContactedOn: store.getTourContactedOn.bind(store),\n setContactData: store.setTourContactData.bind(store),\n },\n },\n filters: {\n set: store.setFilters.bind(store),\n setTemp: store.setTempFilters.bind(store),\n setToDefault: store.setFiltersToDefault.bind(store),\n commitTemp: async (key, defaultValue) => {\n const state = get ? get() : (store as unknown as ZustandUnifiedStoreState);\n const value = (state.tempFilters as Filters)[key] ?? defaultValue;\n await store.handleTempFilterChange(key, value as any);\n await store.submitFilterUpdate();\n },\n commitDateAvailability: async () => {\n await store.submitFilterUpdate();\n },\n submit: store.submitFilterUpdate.bind(store),\n },\n };\n}\n\nexport type StructuredStore = ZustandUnifiedStoreState & StructuredStoreActions;\n\nexport function createStructuredStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): StructuredStore => {\n const baseStore = createZustandUnifiedStore(options)(set, get);\n const actions = createStructuredStoreActions(baseStore, get);\n\n return {\n ...baseStore,\n ...actions,\n };\n };\n}\n"],"names":["createStructuredStoreActions","store","get","key","defaultValue","value","createStructuredStore","options","set","baseStore","createZustandUnifiedStore","actions"],"mappings":"uHAiDO,SAASA,EAA6BC,EAAiCC,EAA8D,CAC1I,MAAO,CACL,SAAU,CACR,KAAM,CACJ,UAAW,CACT,OAAQD,EAAM,eAAe,KAAKA,CAAK,CAAA,EAEzC,OAAQ,CACN,KAAMA,EAAM,iBAAiB,KAAKA,CAAK,CAAA,CACzC,EAEF,cAAe,CACb,WAAYA,EAAM,wBAAwB,KAAKA,CAAK,CAAA,EAEtD,KAAM,CACJ,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,EACnD,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,EACnD,eAAgBA,EAAM,mBAAmB,KAAKA,CAAK,CAAA,CACrD,EAEF,QAAS,CACP,IAAKA,EAAM,WAAW,KAAKA,CAAK,EAChC,QAASA,EAAM,eAAe,KAAKA,CAAK,EACxC,aAAcA,EAAM,oBAAoB,KAAKA,CAAK,EAClD,WAAY,MAAOE,EAAKC,IAAiB,CAEvC,MAAMC,GADQH,EAAMA,EAAA,EAASD,GACR,YAAwBE,CAAG,GAAKC,EACrD,MAAMH,EAAM,uBAAuBE,EAAKE,CAAY,EACpD,MAAMJ,EAAM,mBAAA,CACd,EACA,uBAAwB,SAAY,CAClC,MAAMA,EAAM,mBAAA,CACd,EACA,OAAQA,EAAM,mBAAmB,KAAKA,CAAK,CAAA,CAC7C,CAEJ,CAIO,SAASK,EAAsBC,EAEnC,CACD,MAAO,CAACC,EAAUN,IAA8B,CAC9C,MAAMO,EAAYC,EAAAA,0BAA0BH,CAAO,EAAEC,EAAKN,CAAG,EACvDS,EAAUX,EAA6BS,EAAWP,CAAG,EAE3D,MAAO,CACL,GAAGO,EACH,GAAGE,CAAA,CAEP,CACF"}
@@ -33,7 +33,7 @@ export interface StructuredStoreActions {
33
33
  setTemp: (filters: Partial<Filters>) => Promise<void>;
34
34
  setToDefault: () => Promise<void>;
35
35
  commitTemp: <K extends keyof Filters>(key: K, defaultValue: Filters[K]) => Promise<void>;
36
- commitAvailability: () => Promise<void>;
36
+ commitDateAvailability: () => Promise<void>;
37
37
  submit: () => Promise<void>;
38
38
  };
39
39
  }
@@ -27,7 +27,7 @@ function c(t, i) {
27
27
  const u = (i ? i() : t).tempFilters[e] ?? n;
28
28
  await t.handleTempFilterChange(e, u), await t.submitFilterUpdate();
29
29
  },
30
- commitAvailability: async () => {
30
+ commitDateAvailability: async () => {
31
31
  await t.submitFilterUpdate();
32
32
  },
33
33
  submit: t.submitFilterUpdate.bind(t)
@@ -1 +1 @@
1
- {"version":3,"file":"structured-store.mjs","sources":["../../src/adapters/structured-store.ts"],"sourcesContent":["/**\n * Structured store wrapper (preferred DX)\n *\n * This layer wraps the flat Zustand adapter with domain‑grouped actions\n * for a more discoverable API in apps. It does not add new behavior —\n * it simply organizes calls like:\n * - `property.unit.favorites.toggle` → `toggleFavorite`\n * - `property.unit.viewed.mark` → `markUnitAsViewed`\n * - `filters.set/submit/...` → filter methods\n */\nimport {\n type ZustandUnifiedStoreState,\n createZustandUnifiedStore,\n type Filters,\n type UnitData,\n type TourContactData,\n type QueryParams\n} from \"./zustand-store\";\n\nexport interface StructuredStoreActions {\n property: {\n unit: {\n favorites: {\n toggle: (unitId: string) => Promise<void>;\n };\n viewed: {\n mark: (unitId: string, slug: string) => Promise<void>;\n };\n };\n questionnaire: {\n setResults: (results: unknown) => Promise<void>;\n };\n tour: {\n setContactedOn: () => Promise<void>;\n getContactedOn: () => Promise<string | null>;\n setContactData: (data: TourContactData) => Promise<void>;\n };\n };\n\n filters: {\n set: (filters: Partial<Filters>) => Promise<void>;\n setTemp: (filters: Partial<Filters>) => Promise<void>;\n setToDefault: () => Promise<void>;\n commitTemp: <K extends keyof Filters>(key: K, defaultValue: Filters[K]) => Promise<void>;\n commitAvailability: () => Promise<void>;\n submit: () => Promise<void>;\n };\n}\n\nexport function createStructuredStoreActions(store: ZustandUnifiedStoreState, get?: () => ZustandUnifiedStoreState): StructuredStoreActions {\n return {\n property: {\n unit: {\n favorites: {\n toggle: store.toggleFavorite.bind(store),\n },\n viewed: {\n mark: store.markUnitAsViewed.bind(store),\n },\n },\n questionnaire: {\n setResults: store.setQuestionnaireResults.bind(store),\n },\n tour: {\n setContactedOn: store.setTourContactedOn.bind(store),\n getContactedOn: store.getTourContactedOn.bind(store),\n setContactData: store.setTourContactData.bind(store),\n },\n },\n filters: {\n set: store.setFilters.bind(store),\n setTemp: store.setTempFilters.bind(store),\n setToDefault: store.setFiltersToDefault.bind(store),\n commitTemp: async (key, defaultValue) => {\n const state = get ? get() : (store as unknown as ZustandUnifiedStoreState);\n const value = (state.tempFilters as Filters)[key] ?? defaultValue;\n await store.handleTempFilterChange(key, value as any);\n await store.submitFilterUpdate();\n },\n commitAvailability: async () => {\n await store.submitFilterUpdate();\n },\n submit: store.submitFilterUpdate.bind(store),\n },\n };\n}\n\nexport type StructuredStore = ZustandUnifiedStoreState & StructuredStoreActions;\n\nexport function createStructuredStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): StructuredStore => {\n const baseStore = createZustandUnifiedStore(options)(set, get);\n const actions = createStructuredStoreActions(baseStore, get);\n\n return {\n ...baseStore,\n ...actions,\n };\n };\n}\n"],"names":["createStructuredStoreActions","store","get","key","defaultValue","value","createStructuredStore","options","set","baseStore","createZustandUnifiedStore","actions"],"mappings":";AAiDO,SAASA,EAA6BC,GAAiCC,GAA8D;AAC1I,SAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,WAAW;AAAA,UACT,QAAQD,EAAM,eAAe,KAAKA,CAAK;AAAA,QAAA;AAAA,QAEzC,QAAQ;AAAA,UACN,MAAMA,EAAM,iBAAiB,KAAKA,CAAK;AAAA,QAAA;AAAA,MACzC;AAAA,MAEF,eAAe;AAAA,QACb,YAAYA,EAAM,wBAAwB,KAAKA,CAAK;AAAA,MAAA;AAAA,MAEtD,MAAM;AAAA,QACJ,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,QACnD,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,QACnD,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,MAAA;AAAA,IACrD;AAAA,IAEF,SAAS;AAAA,MACP,KAAKA,EAAM,WAAW,KAAKA,CAAK;AAAA,MAChC,SAASA,EAAM,eAAe,KAAKA,CAAK;AAAA,MACxC,cAAcA,EAAM,oBAAoB,KAAKA,CAAK;AAAA,MAClD,YAAY,OAAOE,GAAKC,MAAiB;AAEvC,cAAMC,KADQH,IAAMA,EAAA,IAASD,GACR,YAAwBE,CAAG,KAAKC;AACrD,cAAMH,EAAM,uBAAuBE,GAAKE,CAAY,GACpD,MAAMJ,EAAM,mBAAA;AAAA,MACd;AAAA,MACA,oBAAoB,YAAY;AAC9B,cAAMA,EAAM,mBAAA;AAAA,MACd;AAAA,MACA,QAAQA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,IAAA;AAAA,EAC7C;AAEJ;AAIO,SAASK,EAAsBC,GAEnC;AACD,SAAO,CAACC,GAAUN,MAA8B;AAC9C,UAAMO,IAAYC,EAA0BH,CAAO,EAAEC,GAAKN,CAAG,GACvDS,IAAUX,EAA6BS,GAAWP,CAAG;AAE3D,WAAO;AAAA,MACL,GAAGO;AAAA,MACH,GAAGE;AAAA,IAAA;AAAA,EAEP;AACF;"}
1
+ {"version":3,"file":"structured-store.mjs","sources":["../../src/adapters/structured-store.ts"],"sourcesContent":["/**\n * Structured store wrapper (preferred DX)\n *\n * This layer wraps the flat Zustand adapter with domain‑grouped actions\n * for a more discoverable API in apps. It does not add new behavior —\n * it simply organizes calls like:\n * - `property.unit.favorites.toggle` → `toggleFavorite`\n * - `property.unit.viewed.mark` → `markUnitAsViewed`\n * - `filters.set/submit/...` → filter methods\n */\nimport {\n type ZustandUnifiedStoreState,\n createZustandUnifiedStore,\n type Filters,\n type UnitData,\n type TourContactData,\n type QueryParams\n} from \"./zustand-store\";\n\nexport interface StructuredStoreActions {\n property: {\n unit: {\n favorites: {\n toggle: (unitId: string) => Promise<void>;\n };\n viewed: {\n mark: (unitId: string, slug: string) => Promise<void>;\n };\n };\n questionnaire: {\n setResults: (results: unknown) => Promise<void>;\n };\n tour: {\n setContactedOn: () => Promise<void>;\n getContactedOn: () => Promise<string | null>;\n setContactData: (data: TourContactData) => Promise<void>;\n };\n };\n\n filters: {\n set: (filters: Partial<Filters>) => Promise<void>;\n setTemp: (filters: Partial<Filters>) => Promise<void>;\n setToDefault: () => Promise<void>;\n commitTemp: <K extends keyof Filters>(key: K, defaultValue: Filters[K]) => Promise<void>;\n commitDateAvailability: () => Promise<void>;\n submit: () => Promise<void>;\n };\n}\n\nexport function createStructuredStoreActions(store: ZustandUnifiedStoreState, get?: () => ZustandUnifiedStoreState): StructuredStoreActions {\n return {\n property: {\n unit: {\n favorites: {\n toggle: store.toggleFavorite.bind(store),\n },\n viewed: {\n mark: store.markUnitAsViewed.bind(store),\n },\n },\n questionnaire: {\n setResults: store.setQuestionnaireResults.bind(store),\n },\n tour: {\n setContactedOn: store.setTourContactedOn.bind(store),\n getContactedOn: store.getTourContactedOn.bind(store),\n setContactData: store.setTourContactData.bind(store),\n },\n },\n filters: {\n set: store.setFilters.bind(store),\n setTemp: store.setTempFilters.bind(store),\n setToDefault: store.setFiltersToDefault.bind(store),\n commitTemp: async (key, defaultValue) => {\n const state = get ? get() : (store as unknown as ZustandUnifiedStoreState);\n const value = (state.tempFilters as Filters)[key] ?? defaultValue;\n await store.handleTempFilterChange(key, value as any);\n await store.submitFilterUpdate();\n },\n commitDateAvailability: async () => {\n await store.submitFilterUpdate();\n },\n submit: store.submitFilterUpdate.bind(store),\n },\n };\n}\n\nexport type StructuredStore = ZustandUnifiedStoreState & StructuredStoreActions;\n\nexport function createStructuredStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): StructuredStore => {\n const baseStore = createZustandUnifiedStore(options)(set, get);\n const actions = createStructuredStoreActions(baseStore, get);\n\n return {\n ...baseStore,\n ...actions,\n };\n };\n}\n"],"names":["createStructuredStoreActions","store","get","key","defaultValue","value","createStructuredStore","options","set","baseStore","createZustandUnifiedStore","actions"],"mappings":";AAiDO,SAASA,EAA6BC,GAAiCC,GAA8D;AAC1I,SAAO;AAAA,IACL,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,WAAW;AAAA,UACT,QAAQD,EAAM,eAAe,KAAKA,CAAK;AAAA,QAAA;AAAA,QAEzC,QAAQ;AAAA,UACN,MAAMA,EAAM,iBAAiB,KAAKA,CAAK;AAAA,QAAA;AAAA,MACzC;AAAA,MAEF,eAAe;AAAA,QACb,YAAYA,EAAM,wBAAwB,KAAKA,CAAK;AAAA,MAAA;AAAA,MAEtD,MAAM;AAAA,QACJ,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,QACnD,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,QACnD,gBAAgBA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,MAAA;AAAA,IACrD;AAAA,IAEF,SAAS;AAAA,MACP,KAAKA,EAAM,WAAW,KAAKA,CAAK;AAAA,MAChC,SAASA,EAAM,eAAe,KAAKA,CAAK;AAAA,MACxC,cAAcA,EAAM,oBAAoB,KAAKA,CAAK;AAAA,MAClD,YAAY,OAAOE,GAAKC,MAAiB;AAEvC,cAAMC,KADQH,IAAMA,EAAA,IAASD,GACR,YAAwBE,CAAG,KAAKC;AACrD,cAAMH,EAAM,uBAAuBE,GAAKE,CAAY,GACpD,MAAMJ,EAAM,mBAAA;AAAA,MACd;AAAA,MACA,wBAAwB,YAAY;AAClC,cAAMA,EAAM,mBAAA;AAAA,MACd;AAAA,MACA,QAAQA,EAAM,mBAAmB,KAAKA,CAAK;AAAA,IAAA;AAAA,EAC7C;AAEJ;AAIO,SAASK,EAAsBC,GAEnC;AACD,SAAO,CAACC,GAAUN,MAA8B;AAC9C,UAAMO,IAAYC,EAA0BH,CAAO,EAAEC,GAAKN,CAAG,GACvDS,IAAUX,EAA6BS,GAAWP,CAAG;AAE3D,WAAO;AAAA,MACL,GAAGO;AAAA,MACH,GAAGE;AAAA,IAAA;AAAA,EAEP;AACF;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../stores/store.cjs");function d(n){return(s,o)=>{const a=async()=>{const t=await e.store.getFullState();s({properties:t.properties,currentPropertyId:t.currentPropertyId,currentPropertySlug:t.currentPropertySlug,hasPreviouslySearched:t.hasPreviouslySearched,unitResults:t.unitResults,filters:t.filters,tempFilters:t.tempFilters,apiFilters:t.apiFilters,resultsMode:t.resultsMode,resolvedQuestionnaireValues:t.resolvedQuestionnaireValues,sortBy:t.sortBy})},u=async()=>{if(n!=null&&n.onFilterUpdate){const t=(await e.store.getFullState()).apiFilters;n.onFilterUpdate(t)}};return{properties:{},currentPropertyId:null,currentPropertySlug:null,hasPreviouslySearched:[],unitResults:[],filters:{availability:void 0,bedrooms:void 0,cost:void 0,highlights:void 0},tempFilters:{availability:void 0,bedrooms:void 0,cost:void 0,highlights:void 0},apiFilters:{limit:10,page:1},resultsMode:"all",resolvedQuestionnaireValues:{},sortBy:"relevance",filtersLoaded:!1,async initializeProperty(t,r){await e.store.initializeProperty(t,r),await a()},async setCurrentProperty(t,r){await e.store.setCurrentProperty(t,r),s({currentPropertyId:t,...r&&{currentPropertySlug:r}})},async setCurrentPropertySlug(t){await e.store.setCurrentPropertySlug(t),s({currentPropertySlug:t})},async setHasPreviouslySearched(t){await e.store.setHasPreviouslySearched(t),await a()},async toggleFavorite(t){await e.store.toggleFavorite(t),await a()},async markUnitAsViewed(t,r){await e.store.markUnitAsViewed(t,r),await a()},async setTourContactedOn(){await e.store.setTourContactedOn(),await a()},getTourContactedOn:e.store.getTourContactedOn.bind(e.store),async setQuestionnaireResults(t){await e.store.setQuestionnaireResults(t),await a()},async setTourContactData(t){await e.store.setTourContactData(t),await a()},async setUnitResults(t){await e.store.setUnitResults(t),await a()},async clearUnitResults(){await e.store.clearUnitResults(),await a()},async setFilters(t){await e.store.setFilters(t);const r=o();s({filters:{...r.filters,...t}})},async setTempFilters(t){await e.store.setTempFilters(t);const r=o();s({tempFilters:{...r.tempFilters,...t}})},async setFiltersToDefault(){await e.store.setFiltersToDefault(),s({filters:{availability:void 0,bedrooms:void 0,cost:void 0,highlights:void 0}})},async setApiFilters(t){await e.store.setApiFilters(t);const r=o();s({apiFilters:{...r.apiFilters,...t}})},async handleTempFilterChange(t,r){await e.store.handleTempFilterChange(t,r);const i=o();s({tempFilters:{...i.tempFilters,[t]:r}})},async submitFilterUpdate(){await e.store.submitFilterUpdate(),await a(),await u()},async setResultsMode(t){await e.store.setResultsMode(t),s({resultsMode:t})},async setSortBy(t){await e.store.setSortBy(t),s({sortBy:t})},async setResolvedQuestionnaireValues(t,r){await e.store.setResolvedQuestionnaireValues(t,r);const i=o();s({resolvedQuestionnaireValues:{...i.resolvedQuestionnaireValues,[t]:r}})},getUnitState(t){var l;const r=o(),i=r.currentPropertyId?r.properties[r.currentPropertyId]:null;return{isFavorite:(i==null?void 0:i.favoritedUnits.includes(t))??!1,viewedDate:((l=i==null?void 0:i.viewedUnits.find(c=>c.unitId===t))==null?void 0:l.viewedDate)??""}},getResultsUrl:e.store.getResultsUrl.bind(e.store),getCurrentProperty:e.store.getCurrentProperty.bind(e.store),getPropertyData:e.store.getPropertyData.bind(e.store),async _hydrate(){await a()},async _initialize(){await e.store.initialize(),await a(),s({filtersLoaded:!0})}}}}function y(){return n=>s=>n(o=>o.getUnitState(s))}exports.createUseUnitState=y;exports.createZustandUnifiedStore=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../stores/store.cjs");function d(n){return(a,o)=>{const s=async()=>{const t=await e.store.getFullState();a({properties:t.properties,currentPropertyId:t.currentPropertyId,currentPropertySlug:t.currentPropertySlug,hasPreviouslySearched:t.hasPreviouslySearched,unitResults:t.unitResults,filters:t.filters,tempFilters:t.tempFilters,apiFilters:t.apiFilters,resultsMode:t.resultsMode,resolvedQuestionnaireValues:t.resolvedQuestionnaireValues,sortBy:t.sortBy})},u=async()=>{if(n!=null&&n.onFilterUpdate){const t=(await e.store.getFullState()).apiFilters;n.onFilterUpdate(t)}};return{properties:{},currentPropertyId:null,currentPropertySlug:null,hasPreviouslySearched:[],unitResults:[],filters:{date_availability:void 0,qty_bedrooms:void 0,base_price:void 0,highlights:void 0},tempFilters:{date_availability:void 0,qty_bedrooms:void 0,base_price:void 0,highlights:void 0},apiFilters:{limit:10,page:1,sortBy:"relevance"},resultsMode:"all",resolvedQuestionnaireValues:{},sortBy:"relevance",filtersLoaded:!1,async initializeProperty(t,r){await e.store.initializeProperty(t,r),await s()},async setCurrentProperty(t,r){await e.store.setCurrentProperty(t,r),a({currentPropertyId:t,...r&&{currentPropertySlug:r}})},async setCurrentPropertySlug(t){await e.store.setCurrentPropertySlug(t),a({currentPropertySlug:t})},async setHasPreviouslySearched(t){await e.store.setHasPreviouslySearched(t),await s()},async toggleFavorite(t){await e.store.toggleFavorite(t),await s()},async markUnitAsViewed(t,r){await e.store.markUnitAsViewed(t,r),await s()},async setTourContactedOn(){await e.store.setTourContactedOn(),await s()},getTourContactedOn:e.store.getTourContactedOn.bind(e.store),async setQuestionnaireResults(t){await e.store.setQuestionnaireResults(t),await s()},async setTourContactData(t){await e.store.setTourContactData(t),await s()},async setUnitResults(t){await e.store.setUnitResults(t),await s()},async clearUnitResults(){await e.store.clearUnitResults(),await s()},async setFilters(t){await e.store.setFilters(t);const r=o();a({filters:{...r.filters,...t}})},async setTempFilters(t){await e.store.setTempFilters(t);const r=o();a({tempFilters:{...r.tempFilters,...t}})},async setFiltersToDefault(){await e.store.setFiltersToDefault(),a({filters:{date_availability:void 0,qty_bedrooms:void 0,base_price:void 0,highlights:void 0}})},async setApiFilters(t){await e.store.setApiFilters(t);const r=o();a({apiFilters:{...r.apiFilters,...t}})},async handleTempFilterChange(t,r){await e.store.handleTempFilterChange(t,r);const i=o();a({tempFilters:{...i.tempFilters,[t]:r}})},async submitFilterUpdate(){await e.store.submitFilterUpdate(),await s(),await u()},async setResultsMode(t){await e.store.setResultsMode(t),a({resultsMode:t})},async setSortBy(t){await e.store.setSortBy(t),a({sortBy:t})},async setResolvedQuestionnaireValues(t,r){await e.store.setResolvedQuestionnaireValues(t,r);const i=o();a({resolvedQuestionnaireValues:{...i.resolvedQuestionnaireValues,[t]:r}})},getUnitState(t){var l;const r=o(),i=r.currentPropertyId?r.properties[r.currentPropertyId]:null;return{isFavorite:(i==null?void 0:i.favoritedUnits.includes(t))??!1,viewedDate:((l=i==null?void 0:i.viewedUnits.find(c=>c.unitId===t))==null?void 0:l.viewedDate)??""}},getResultsUrl:e.store.getResultsUrl.bind(e.store),getCurrentProperty:e.store.getCurrentProperty.bind(e.store),getPropertyData:e.store.getPropertyData.bind(e.store),async _hydrate(){await s()},async _initialize(){await e.store.initialize(),await s(),a({filtersLoaded:!0})}}}}function y(){return n=>a=>n(o=>o.getUnitState(a))}exports.createUseUnitState=y;exports.createZustandUnifiedStore=d;
2
2
  //# sourceMappingURL=zustand-store.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"zustand-store.cjs","sources":["../../src/adapters/zustand-store.ts"],"sourcesContent":["/**\n * Zustand adapter (flat API)\n *\n * This file exposes a flat, unified Zustand store that mirrors the underlying\n * ORM store and keeps React state in sync. It is the low-level bridge.\n *\n * For a friendlier, domain-grouped API, use `createStructuredStore` from\n * `./structured-store`, which wraps this adapter and exposes nested actions\n * like `property.unit.favorites.toggle`, `filters.set`, etc.\n */\nimport { store } from \"../stores/store\";\nimport type { UnifiedStoreData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Unified Zustand store interface\nexport interface ZustandUnifiedStoreState {\n // Property data\n properties: Record<string, UserPropertyState>;\n currentPropertyId: string | null;\n currentPropertySlug: string | null;\n hasPreviouslySearched: string[];\n\n // App data\n unitResults: Unit[];\n filters: Filters;\n tempFilters: Filters;\n apiFilters: QueryParams;\n resultsMode: ResultsMode;\n resolvedQuestionnaireValues: Record<string, string[]>;\n sortBy: SortBy;\n filtersLoaded: boolean;\n\n // === PROPERTY OPERATIONS ===\n initializeProperty: (propertyId: string, slug: string) => Promise<void>;\n setCurrentProperty: (propertyId: string, slug?: string) => Promise<void>;\n setCurrentPropertySlug: (slug: string) => Promise<void>;\n setHasPreviouslySearched: (slug: string) => Promise<void>;\n toggleFavorite: (unitId: string) => Promise<void>;\n markUnitAsViewed: (unitId: string, slug: string) => Promise<void>;\n setTourContactedOn: () => Promise<void>;\n getTourContactedOn: () => Promise<string | null>;\n setQuestionnaireResults: (results: unknown) => Promise<void>;\n setTourContactData: (data: TourContactData) => Promise<void>;\n setUnitResults: (units: unknown) => Promise<void>;\n clearUnitResults: () => Promise<void>;\n\n\n // === FILTER OPERATIONS ===\n setFilters: (filters: Partial<Filters>) => Promise<void>;\n setTempFilters: (filters: Partial<Filters>) => Promise<void>;\n setFiltersToDefault: () => Promise<void>;\n setApiFilters: (filters: Partial<QueryParams>) => Promise<void>;\n handleTempFilterChange: <K extends keyof Filters>(key: K, value: Filters[K]) => Promise<void>;\n submitFilterUpdate: () => Promise<void>;\n\n // === RESULTS AND SORTING ===\n setResultsMode: (mode: ResultsMode) => Promise<void>;\n setSortBy: (sortBy: SortBy) => Promise<void>;\n\n // === QUESTIONNAIRE ===\n setResolvedQuestionnaireValues: (name: string, values: string[]) => Promise<void>;\n\n // === UTILITY METHODS ===\n getUnitState: (unitId: string) => {\n isFavorite: boolean;\n viewedDate: string;\n };\n getResultsUrl: () => Promise<string | null>;\n getCurrentProperty: () => Promise<UserPropertyState | null>;\n getPropertyData: (propertyId?: string) => Promise<UserPropertyState | null>;\n\n // === INTERNAL ===\n _hydrate: () => Promise<void>;\n _initialize: () => Promise<void>;\n}\n\n/**\n * @deprecated For new apps, use `createStructuredStore` from `./structured-store`.\n * This flat adapter remains for migration/advanced cases.\n */\nexport function createZustandUnifiedStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): ZustandUnifiedStoreState => {\n // Helper to update local state after ORM operations\n const syncState = async () => {\n const ormState = await store.getFullState();\n set({\n properties: ormState.properties,\n currentPropertyId: ormState.currentPropertyId,\n currentPropertySlug: ormState.currentPropertySlug,\n hasPreviouslySearched: ormState.hasPreviouslySearched,\n unitResults: ormState.unitResults,\n filters: ormState.filters,\n tempFilters: ormState.tempFilters,\n apiFilters: ormState.apiFilters,\n resultsMode: ormState.resultsMode,\n resolvedQuestionnaireValues: ormState.resolvedQuestionnaireValues,\n sortBy: ormState.sortBy,\n });\n };\n\n // Helper to notify of filter updates\n const notifyFilterUpdate = async () => {\n if (options?.onFilterUpdate) {\n const apiFilters = (await store.getFullState()).apiFilters;\n options.onFilterUpdate(apiFilters);\n }\n };\n\n return {\n // Initial state\n properties: {},\n currentPropertyId: null,\n currentPropertySlug: null,\n hasPreviouslySearched: [],\n unitResults: [],\n filters: {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n },\n tempFilters: {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n },\n apiFilters: {\n limit: 10,\n page: 1,\n },\n resultsMode: \"all\",\n resolvedQuestionnaireValues: {},\n sortBy: \"relevance\",\n filtersLoaded: false,\n\n // === PROPERTY OPERATIONS ===\n async initializeProperty(propertyId, slug) {\n await store.initializeProperty(propertyId, slug);\n await syncState();\n },\n\n async setCurrentProperty(propertyId, slug) {\n await store.setCurrentProperty(propertyId, slug);\n set({\n currentPropertyId: propertyId,\n ...(slug && { currentPropertySlug: slug })\n });\n },\n\n async setCurrentPropertySlug(slug) {\n await store.setCurrentPropertySlug(slug);\n set({ currentPropertySlug: slug });\n },\n\n async setHasPreviouslySearched(slug) {\n await store.setHasPreviouslySearched(slug);\n await syncState();\n },\n\n async toggleFavorite(unitId) {\n await store.toggleFavorite(unitId);\n await syncState();\n },\n\n async markUnitAsViewed(unitId, slug) {\n await store.markUnitAsViewed(unitId, slug);\n await syncState();\n },\n\n async setTourContactedOn() {\n await store.setTourContactedOn();\n await syncState();\n },\n\n getTourContactedOn: store.getTourContactedOn.bind(store),\n\n async setQuestionnaireResults(results) {\n await store.setQuestionnaireResults(results);\n await syncState();\n },\n\n async setTourContactData(data) {\n await store.setTourContactData(data);\n await syncState();\n },\n\n async setUnitResults(units) {\n await store.setUnitResults(units);\n await syncState();\n },\n\n async clearUnitResults() {\n await store.clearUnitResults();\n await syncState();\n },\n\n\n // === FILTER OPERATIONS ===\n async setFilters(filters) {\n await store.setFilters(filters);\n const state = get();\n set({ filters: { ...state.filters, ...filters } });\n },\n\n async setTempFilters(filters) {\n await store.setTempFilters(filters);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, ...filters } });\n },\n\n async setFiltersToDefault() {\n await store.setFiltersToDefault();\n const defaultFilters = {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n };\n set({ filters: defaultFilters });\n },\n\n async setApiFilters(filters) {\n await store.setApiFilters(filters);\n const state = get();\n set({ apiFilters: { ...state.apiFilters, ...filters } });\n },\n\n async handleTempFilterChange(key, value) {\n await store.handleTempFilterChange(key, value);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, [key]: value } });\n },\n\n async submitFilterUpdate() {\n await store.submitFilterUpdate();\n await syncState();\n await notifyFilterUpdate();\n },\n\n // === RESULTS AND SORTING ===\n async setResultsMode(mode) {\n await store.setResultsMode(mode);\n set({ resultsMode: mode });\n },\n\n async setSortBy(sortBy) {\n await store.setSortBy(sortBy);\n set({ sortBy });\n },\n\n // === QUESTIONNAIRE ===\n async setResolvedQuestionnaireValues(name, values) {\n await store.setResolvedQuestionnaireValues(name, values);\n const state = get();\n set({\n resolvedQuestionnaireValues: {\n ...state.resolvedQuestionnaireValues,\n [name]: values,\n }\n });\n },\n\n // === UTILITY METHODS ===\n getUnitState(unitId: string) {\n const state = get();\n const property = state.currentPropertyId ? state.properties[state.currentPropertyId] : null;\n\n return {\n isFavorite: property?.favoritedUnits.includes(unitId) ?? false,\n viewedDate:\n property?.viewedUnits.find((u: any) => u.unitId === unitId)?.viewedDate ?? \"\",\n };\n },\n\n getResultsUrl: store.getResultsUrl.bind(store),\n getCurrentProperty: store.getCurrentProperty.bind(store),\n getPropertyData: store.getPropertyData.bind(store),\n\n // === INTERNAL ===\n async _hydrate() {\n await syncState();\n },\n\n async _initialize() {\n await store.initialize();\n await syncState();\n set({ filtersLoaded: true });\n },\n };\n };\n}\n\n// Helper hook factory for unit state\nexport function createUseUnitState() {\n return (useStore: any) => (unitId: string) =>\n useStore((state: ZustandUnifiedStoreState) => state.getUnitState(unitId));\n}\n\n// Export types for consuming apps\nexport type { UnitData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Intentionally no alias exports in vNext; use `createStructuredStore` or `createZustandUnifiedStore` explicitly.\n"],"names":["createZustandUnifiedStore","options","set","get","syncState","ormState","store","notifyFilterUpdate","apiFilters","propertyId","slug","unitId","results","data","units","filters","state","key","value","mode","sortBy","name","values","property","_a","u","createUseUnitState","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"zustand-store.cjs","sources":["../../src/adapters/zustand-store.ts"],"sourcesContent":["/**\n * Zustand adapter (flat API)\n *\n * This file exposes a flat, unified Zustand store that mirrors the underlying\n * ORM store and keeps React state in sync. It is the low-level bridge.\n *\n * For a friendlier, domain-grouped API, use `createStructuredStore` from\n * `./structured-store`, which wraps this adapter and exposes nested actions\n * like `property.unit.favorites.toggle`, `filters.set`, etc.\n */\nimport { store } from \"../stores/store\";\nimport type { UnifiedStoreData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Unified Zustand store interface\nexport interface ZustandUnifiedStoreState {\n // Property data\n properties: Record<string, UserPropertyState>;\n currentPropertyId: string | null;\n currentPropertySlug: string | null;\n hasPreviouslySearched: string[];\n\n // App data\n unitResults: Unit[];\n filters: Filters;\n tempFilters: Filters;\n apiFilters: QueryParams;\n resultsMode: ResultsMode;\n resolvedQuestionnaireValues: Record<string, string[]>;\n sortBy: SortBy;\n filtersLoaded: boolean;\n\n // === PROPERTY OPERATIONS ===\n initializeProperty: (propertyId: string, slug: string) => Promise<void>;\n setCurrentProperty: (propertyId: string, slug?: string) => Promise<void>;\n setCurrentPropertySlug: (slug: string) => Promise<void>;\n setHasPreviouslySearched: (slug: string) => Promise<void>;\n toggleFavorite: (unitId: string) => Promise<void>;\n markUnitAsViewed: (unitId: string, slug: string) => Promise<void>;\n setTourContactedOn: () => Promise<void>;\n getTourContactedOn: () => Promise<string | null>;\n setQuestionnaireResults: (results: unknown) => Promise<void>;\n setTourContactData: (data: TourContactData) => Promise<void>;\n setUnitResults: (units: unknown) => Promise<void>;\n clearUnitResults: () => Promise<void>;\n\n\n // === FILTER OPERATIONS ===\n setFilters: (filters: Partial<Filters>) => Promise<void>;\n setTempFilters: (filters: Partial<Filters>) => Promise<void>;\n setFiltersToDefault: () => Promise<void>;\n setApiFilters: (filters: Partial<QueryParams>) => Promise<void>;\n handleTempFilterChange: <K extends keyof Filters>(key: K, value: Filters[K]) => Promise<void>;\n submitFilterUpdate: () => Promise<void>;\n\n // === RESULTS AND SORTING ===\n setResultsMode: (mode: ResultsMode) => Promise<void>;\n setSortBy: (sortBy: SortBy) => Promise<void>;\n\n // === QUESTIONNAIRE ===\n setResolvedQuestionnaireValues: (name: string, values: string[]) => Promise<void>;\n\n // === UTILITY METHODS ===\n getUnitState: (unitId: string) => {\n isFavorite: boolean;\n viewedDate: string;\n };\n getResultsUrl: () => Promise<string | null>;\n getCurrentProperty: () => Promise<UserPropertyState | null>;\n getPropertyData: (propertyId?: string) => Promise<UserPropertyState | null>;\n\n // === INTERNAL ===\n _hydrate: () => Promise<void>;\n _initialize: () => Promise<void>;\n}\n\n/**\n * @deprecated For new apps, use `createStructuredStore` from `./structured-store`.\n * This flat adapter remains for migration/advanced cases.\n */\nexport function createZustandUnifiedStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): ZustandUnifiedStoreState => {\n // Helper to update local state after ORM operations\n const syncState = async () => {\n const ormState = await store.getFullState();\n set({\n properties: ormState.properties,\n currentPropertyId: ormState.currentPropertyId,\n currentPropertySlug: ormState.currentPropertySlug,\n hasPreviouslySearched: ormState.hasPreviouslySearched,\n unitResults: ormState.unitResults,\n filters: ormState.filters,\n tempFilters: ormState.tempFilters,\n apiFilters: ormState.apiFilters,\n resultsMode: ormState.resultsMode,\n resolvedQuestionnaireValues: ormState.resolvedQuestionnaireValues,\n sortBy: ormState.sortBy,\n });\n };\n\n // Helper to notify of filter updates\n const notifyFilterUpdate = async () => {\n if (options?.onFilterUpdate) {\n const apiFilters = (await store.getFullState()).apiFilters;\n options.onFilterUpdate(apiFilters);\n }\n };\n\n return {\n // Initial state\n properties: {},\n currentPropertyId: null,\n currentPropertySlug: null,\n hasPreviouslySearched: [],\n unitResults: [],\n filters: {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n },\n tempFilters: {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n },\n apiFilters: {\n limit: 10,\n page: 1,\n sortBy: \"relevance\",\n },\n resultsMode: \"all\",\n resolvedQuestionnaireValues: {},\n sortBy: \"relevance\",\n filtersLoaded: false,\n\n // === PROPERTY OPERATIONS ===\n async initializeProperty(propertyId, slug) {\n await store.initializeProperty(propertyId, slug);\n await syncState();\n },\n\n async setCurrentProperty(propertyId, slug) {\n await store.setCurrentProperty(propertyId, slug);\n set({\n currentPropertyId: propertyId,\n ...(slug && { currentPropertySlug: slug })\n });\n },\n\n async setCurrentPropertySlug(slug) {\n await store.setCurrentPropertySlug(slug);\n set({ currentPropertySlug: slug });\n },\n\n async setHasPreviouslySearched(slug) {\n await store.setHasPreviouslySearched(slug);\n await syncState();\n },\n\n async toggleFavorite(unitId) {\n await store.toggleFavorite(unitId);\n await syncState();\n },\n\n async markUnitAsViewed(unitId, slug) {\n await store.markUnitAsViewed(unitId, slug);\n await syncState();\n },\n\n async setTourContactedOn() {\n await store.setTourContactedOn();\n await syncState();\n },\n\n getTourContactedOn: store.getTourContactedOn.bind(store),\n\n async setQuestionnaireResults(results) {\n await store.setQuestionnaireResults(results);\n await syncState();\n },\n\n async setTourContactData(data) {\n await store.setTourContactData(data);\n await syncState();\n },\n\n async setUnitResults(units) {\n await store.setUnitResults(units);\n await syncState();\n },\n\n async clearUnitResults() {\n await store.clearUnitResults();\n await syncState();\n },\n\n\n // === FILTER OPERATIONS ===\n async setFilters(filters) {\n await store.setFilters(filters);\n const state = get();\n set({ filters: { ...state.filters, ...filters } });\n },\n\n async setTempFilters(filters) {\n await store.setTempFilters(filters);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, ...filters } });\n },\n\n async setFiltersToDefault() {\n await store.setFiltersToDefault();\n const defaultFilters = {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n };\n set({ filters: defaultFilters });\n },\n\n async setApiFilters(filters) {\n await store.setApiFilters(filters);\n const state = get();\n set({ apiFilters: { ...state.apiFilters, ...filters } });\n },\n\n async handleTempFilterChange(key, value) {\n await store.handleTempFilterChange(key, value);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, [key]: value } });\n },\n\n async submitFilterUpdate() {\n await store.submitFilterUpdate();\n await syncState();\n await notifyFilterUpdate();\n },\n\n // === RESULTS AND SORTING ===\n async setResultsMode(mode) {\n await store.setResultsMode(mode);\n set({ resultsMode: mode });\n },\n\n async setSortBy(sortBy) {\n await store.setSortBy(sortBy);\n set({ sortBy });\n },\n\n // === QUESTIONNAIRE ===\n async setResolvedQuestionnaireValues(name, values) {\n await store.setResolvedQuestionnaireValues(name, values);\n const state = get();\n set({\n resolvedQuestionnaireValues: {\n ...state.resolvedQuestionnaireValues,\n [name]: values,\n }\n });\n },\n\n // === UTILITY METHODS ===\n getUnitState(unitId: string) {\n const state = get();\n const property = state.currentPropertyId ? state.properties[state.currentPropertyId] : null;\n\n return {\n isFavorite: property?.favoritedUnits.includes(unitId) ?? false,\n viewedDate:\n property?.viewedUnits.find((u: any) => u.unitId === unitId)?.viewedDate ?? \"\",\n };\n },\n\n getResultsUrl: store.getResultsUrl.bind(store),\n getCurrentProperty: store.getCurrentProperty.bind(store),\n getPropertyData: store.getPropertyData.bind(store),\n\n // === INTERNAL ===\n async _hydrate() {\n await syncState();\n },\n\n async _initialize() {\n await store.initialize();\n await syncState();\n set({ filtersLoaded: true });\n },\n };\n };\n}\n\n// Helper hook factory for unit state\nexport function createUseUnitState() {\n return (useStore: any) => (unitId: string) =>\n useStore((state: ZustandUnifiedStoreState) => state.getUnitState(unitId));\n}\n\n// Export types for consuming apps\nexport type { UnitData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Intentionally no alias exports in vNext; use `createStructuredStore` or `createZustandUnifiedStore` explicitly.\n"],"names":["createZustandUnifiedStore","options","set","get","syncState","ormState","store","notifyFilterUpdate","apiFilters","propertyId","slug","unitId","results","data","units","filters","state","key","value","mode","sortBy","name","values","property","_a","u","createUseUnitState","useStore"],"mappings":"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"}
@@ -30,20 +30,21 @@ function y(l) {
30
30
  hasPreviouslySearched: [],
31
31
  unitResults: [],
32
32
  filters: {
33
- availability: void 0,
34
- bedrooms: void 0,
35
- cost: void 0,
33
+ date_availability: void 0,
34
+ qty_bedrooms: void 0,
35
+ base_price: void 0,
36
36
  highlights: void 0
37
37
  },
38
38
  tempFilters: {
39
- availability: void 0,
40
- bedrooms: void 0,
41
- cost: void 0,
39
+ date_availability: void 0,
40
+ qty_bedrooms: void 0,
41
+ base_price: void 0,
42
42
  highlights: void 0
43
43
  },
44
44
  apiFilters: {
45
45
  limit: 10,
46
- page: 1
46
+ page: 1,
47
+ sortBy: "relevance"
47
48
  },
48
49
  resultsMode: "all",
49
50
  resolvedQuestionnaireValues: {},
@@ -100,9 +101,9 @@ function y(l) {
100
101
  },
101
102
  async setFiltersToDefault() {
102
103
  await e.setFiltersToDefault(), i({ filters: {
103
- availability: void 0,
104
- bedrooms: void 0,
105
- cost: void 0,
104
+ date_availability: void 0,
105
+ qty_bedrooms: void 0,
106
+ base_price: void 0,
106
107
  highlights: void 0
107
108
  } });
108
109
  },
@@ -143,7 +144,7 @@ function y(l) {
143
144
  const a = n(), s = a.currentPropertyId ? a.properties[a.currentPropertyId] : null;
144
145
  return {
145
146
  isFavorite: (s == null ? void 0 : s.favoritedUnits.includes(t)) ?? !1,
146
- viewedDate: ((o = s == null ? void 0 : s.viewedUnits.find((c) => c.unitId === t)) == null ? void 0 : o.viewedDate) ?? ""
147
+ viewedDate: ((o = s == null ? void 0 : s.viewedUnits.find((d) => d.unitId === t)) == null ? void 0 : o.viewedDate) ?? ""
147
148
  };
148
149
  },
149
150
  getResultsUrl: e.getResultsUrl.bind(e),
@@ -1 +1 @@
1
- {"version":3,"file":"zustand-store.mjs","sources":["../../src/adapters/zustand-store.ts"],"sourcesContent":["/**\n * Zustand adapter (flat API)\n *\n * This file exposes a flat, unified Zustand store that mirrors the underlying\n * ORM store and keeps React state in sync. It is the low-level bridge.\n *\n * For a friendlier, domain-grouped API, use `createStructuredStore` from\n * `./structured-store`, which wraps this adapter and exposes nested actions\n * like `property.unit.favorites.toggle`, `filters.set`, etc.\n */\nimport { store } from \"../stores/store\";\nimport type { UnifiedStoreData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Unified Zustand store interface\nexport interface ZustandUnifiedStoreState {\n // Property data\n properties: Record<string, UserPropertyState>;\n currentPropertyId: string | null;\n currentPropertySlug: string | null;\n hasPreviouslySearched: string[];\n\n // App data\n unitResults: Unit[];\n filters: Filters;\n tempFilters: Filters;\n apiFilters: QueryParams;\n resultsMode: ResultsMode;\n resolvedQuestionnaireValues: Record<string, string[]>;\n sortBy: SortBy;\n filtersLoaded: boolean;\n\n // === PROPERTY OPERATIONS ===\n initializeProperty: (propertyId: string, slug: string) => Promise<void>;\n setCurrentProperty: (propertyId: string, slug?: string) => Promise<void>;\n setCurrentPropertySlug: (slug: string) => Promise<void>;\n setHasPreviouslySearched: (slug: string) => Promise<void>;\n toggleFavorite: (unitId: string) => Promise<void>;\n markUnitAsViewed: (unitId: string, slug: string) => Promise<void>;\n setTourContactedOn: () => Promise<void>;\n getTourContactedOn: () => Promise<string | null>;\n setQuestionnaireResults: (results: unknown) => Promise<void>;\n setTourContactData: (data: TourContactData) => Promise<void>;\n setUnitResults: (units: unknown) => Promise<void>;\n clearUnitResults: () => Promise<void>;\n\n\n // === FILTER OPERATIONS ===\n setFilters: (filters: Partial<Filters>) => Promise<void>;\n setTempFilters: (filters: Partial<Filters>) => Promise<void>;\n setFiltersToDefault: () => Promise<void>;\n setApiFilters: (filters: Partial<QueryParams>) => Promise<void>;\n handleTempFilterChange: <K extends keyof Filters>(key: K, value: Filters[K]) => Promise<void>;\n submitFilterUpdate: () => Promise<void>;\n\n // === RESULTS AND SORTING ===\n setResultsMode: (mode: ResultsMode) => Promise<void>;\n setSortBy: (sortBy: SortBy) => Promise<void>;\n\n // === QUESTIONNAIRE ===\n setResolvedQuestionnaireValues: (name: string, values: string[]) => Promise<void>;\n\n // === UTILITY METHODS ===\n getUnitState: (unitId: string) => {\n isFavorite: boolean;\n viewedDate: string;\n };\n getResultsUrl: () => Promise<string | null>;\n getCurrentProperty: () => Promise<UserPropertyState | null>;\n getPropertyData: (propertyId?: string) => Promise<UserPropertyState | null>;\n\n // === INTERNAL ===\n _hydrate: () => Promise<void>;\n _initialize: () => Promise<void>;\n}\n\n/**\n * @deprecated For new apps, use `createStructuredStore` from `./structured-store`.\n * This flat adapter remains for migration/advanced cases.\n */\nexport function createZustandUnifiedStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): ZustandUnifiedStoreState => {\n // Helper to update local state after ORM operations\n const syncState = async () => {\n const ormState = await store.getFullState();\n set({\n properties: ormState.properties,\n currentPropertyId: ormState.currentPropertyId,\n currentPropertySlug: ormState.currentPropertySlug,\n hasPreviouslySearched: ormState.hasPreviouslySearched,\n unitResults: ormState.unitResults,\n filters: ormState.filters,\n tempFilters: ormState.tempFilters,\n apiFilters: ormState.apiFilters,\n resultsMode: ormState.resultsMode,\n resolvedQuestionnaireValues: ormState.resolvedQuestionnaireValues,\n sortBy: ormState.sortBy,\n });\n };\n\n // Helper to notify of filter updates\n const notifyFilterUpdate = async () => {\n if (options?.onFilterUpdate) {\n const apiFilters = (await store.getFullState()).apiFilters;\n options.onFilterUpdate(apiFilters);\n }\n };\n\n return {\n // Initial state\n properties: {},\n currentPropertyId: null,\n currentPropertySlug: null,\n hasPreviouslySearched: [],\n unitResults: [],\n filters: {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n },\n tempFilters: {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n },\n apiFilters: {\n limit: 10,\n page: 1,\n },\n resultsMode: \"all\",\n resolvedQuestionnaireValues: {},\n sortBy: \"relevance\",\n filtersLoaded: false,\n\n // === PROPERTY OPERATIONS ===\n async initializeProperty(propertyId, slug) {\n await store.initializeProperty(propertyId, slug);\n await syncState();\n },\n\n async setCurrentProperty(propertyId, slug) {\n await store.setCurrentProperty(propertyId, slug);\n set({\n currentPropertyId: propertyId,\n ...(slug && { currentPropertySlug: slug })\n });\n },\n\n async setCurrentPropertySlug(slug) {\n await store.setCurrentPropertySlug(slug);\n set({ currentPropertySlug: slug });\n },\n\n async setHasPreviouslySearched(slug) {\n await store.setHasPreviouslySearched(slug);\n await syncState();\n },\n\n async toggleFavorite(unitId) {\n await store.toggleFavorite(unitId);\n await syncState();\n },\n\n async markUnitAsViewed(unitId, slug) {\n await store.markUnitAsViewed(unitId, slug);\n await syncState();\n },\n\n async setTourContactedOn() {\n await store.setTourContactedOn();\n await syncState();\n },\n\n getTourContactedOn: store.getTourContactedOn.bind(store),\n\n async setQuestionnaireResults(results) {\n await store.setQuestionnaireResults(results);\n await syncState();\n },\n\n async setTourContactData(data) {\n await store.setTourContactData(data);\n await syncState();\n },\n\n async setUnitResults(units) {\n await store.setUnitResults(units);\n await syncState();\n },\n\n async clearUnitResults() {\n await store.clearUnitResults();\n await syncState();\n },\n\n\n // === FILTER OPERATIONS ===\n async setFilters(filters) {\n await store.setFilters(filters);\n const state = get();\n set({ filters: { ...state.filters, ...filters } });\n },\n\n async setTempFilters(filters) {\n await store.setTempFilters(filters);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, ...filters } });\n },\n\n async setFiltersToDefault() {\n await store.setFiltersToDefault();\n const defaultFilters = {\n availability: undefined,\n bedrooms: undefined,\n cost: undefined,\n highlights: undefined,\n };\n set({ filters: defaultFilters });\n },\n\n async setApiFilters(filters) {\n await store.setApiFilters(filters);\n const state = get();\n set({ apiFilters: { ...state.apiFilters, ...filters } });\n },\n\n async handleTempFilterChange(key, value) {\n await store.handleTempFilterChange(key, value);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, [key]: value } });\n },\n\n async submitFilterUpdate() {\n await store.submitFilterUpdate();\n await syncState();\n await notifyFilterUpdate();\n },\n\n // === RESULTS AND SORTING ===\n async setResultsMode(mode) {\n await store.setResultsMode(mode);\n set({ resultsMode: mode });\n },\n\n async setSortBy(sortBy) {\n await store.setSortBy(sortBy);\n set({ sortBy });\n },\n\n // === QUESTIONNAIRE ===\n async setResolvedQuestionnaireValues(name, values) {\n await store.setResolvedQuestionnaireValues(name, values);\n const state = get();\n set({\n resolvedQuestionnaireValues: {\n ...state.resolvedQuestionnaireValues,\n [name]: values,\n }\n });\n },\n\n // === UTILITY METHODS ===\n getUnitState(unitId: string) {\n const state = get();\n const property = state.currentPropertyId ? state.properties[state.currentPropertyId] : null;\n\n return {\n isFavorite: property?.favoritedUnits.includes(unitId) ?? false,\n viewedDate:\n property?.viewedUnits.find((u: any) => u.unitId === unitId)?.viewedDate ?? \"\",\n };\n },\n\n getResultsUrl: store.getResultsUrl.bind(store),\n getCurrentProperty: store.getCurrentProperty.bind(store),\n getPropertyData: store.getPropertyData.bind(store),\n\n // === INTERNAL ===\n async _hydrate() {\n await syncState();\n },\n\n async _initialize() {\n await store.initialize();\n await syncState();\n set({ filtersLoaded: true });\n },\n };\n };\n}\n\n// Helper hook factory for unit state\nexport function createUseUnitState() {\n return (useStore: any) => (unitId: string) =>\n useStore((state: ZustandUnifiedStoreState) => state.getUnitState(unitId));\n}\n\n// Export types for consuming apps\nexport type { UnitData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Intentionally no alias exports in vNext; use `createStructuredStore` or `createZustandUnifiedStore` explicitly.\n"],"names":["createZustandUnifiedStore","options","set","get","syncState","ormState","store","notifyFilterUpdate","apiFilters","propertyId","slug","unitId","results","data","units","filters","state","key","value","mode","sortBy","name","values","property","_a","u","createUseUnitState","useStore"],"mappings":"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"}
1
+ {"version":3,"file":"zustand-store.mjs","sources":["../../src/adapters/zustand-store.ts"],"sourcesContent":["/**\n * Zustand adapter (flat API)\n *\n * This file exposes a flat, unified Zustand store that mirrors the underlying\n * ORM store and keeps React state in sync. It is the low-level bridge.\n *\n * For a friendlier, domain-grouped API, use `createStructuredStore` from\n * `./structured-store`, which wraps this adapter and exposes nested actions\n * like `property.unit.favorites.toggle`, `filters.set`, etc.\n */\nimport { store } from \"../stores/store\";\nimport type { UnifiedStoreData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Unified Zustand store interface\nexport interface ZustandUnifiedStoreState {\n // Property data\n properties: Record<string, UserPropertyState>;\n currentPropertyId: string | null;\n currentPropertySlug: string | null;\n hasPreviouslySearched: string[];\n\n // App data\n unitResults: Unit[];\n filters: Filters;\n tempFilters: Filters;\n apiFilters: QueryParams;\n resultsMode: ResultsMode;\n resolvedQuestionnaireValues: Record<string, string[]>;\n sortBy: SortBy;\n filtersLoaded: boolean;\n\n // === PROPERTY OPERATIONS ===\n initializeProperty: (propertyId: string, slug: string) => Promise<void>;\n setCurrentProperty: (propertyId: string, slug?: string) => Promise<void>;\n setCurrentPropertySlug: (slug: string) => Promise<void>;\n setHasPreviouslySearched: (slug: string) => Promise<void>;\n toggleFavorite: (unitId: string) => Promise<void>;\n markUnitAsViewed: (unitId: string, slug: string) => Promise<void>;\n setTourContactedOn: () => Promise<void>;\n getTourContactedOn: () => Promise<string | null>;\n setQuestionnaireResults: (results: unknown) => Promise<void>;\n setTourContactData: (data: TourContactData) => Promise<void>;\n setUnitResults: (units: unknown) => Promise<void>;\n clearUnitResults: () => Promise<void>;\n\n\n // === FILTER OPERATIONS ===\n setFilters: (filters: Partial<Filters>) => Promise<void>;\n setTempFilters: (filters: Partial<Filters>) => Promise<void>;\n setFiltersToDefault: () => Promise<void>;\n setApiFilters: (filters: Partial<QueryParams>) => Promise<void>;\n handleTempFilterChange: <K extends keyof Filters>(key: K, value: Filters[K]) => Promise<void>;\n submitFilterUpdate: () => Promise<void>;\n\n // === RESULTS AND SORTING ===\n setResultsMode: (mode: ResultsMode) => Promise<void>;\n setSortBy: (sortBy: SortBy) => Promise<void>;\n\n // === QUESTIONNAIRE ===\n setResolvedQuestionnaireValues: (name: string, values: string[]) => Promise<void>;\n\n // === UTILITY METHODS ===\n getUnitState: (unitId: string) => {\n isFavorite: boolean;\n viewedDate: string;\n };\n getResultsUrl: () => Promise<string | null>;\n getCurrentProperty: () => Promise<UserPropertyState | null>;\n getPropertyData: (propertyId?: string) => Promise<UserPropertyState | null>;\n\n // === INTERNAL ===\n _hydrate: () => Promise<void>;\n _initialize: () => Promise<void>;\n}\n\n/**\n * @deprecated For new apps, use `createStructuredStore` from `./structured-store`.\n * This flat adapter remains for migration/advanced cases.\n */\nexport function createZustandUnifiedStore(options?: {\n onFilterUpdate?: (apiParams: QueryParams) => void;\n}) {\n return (set: any, get: any): ZustandUnifiedStoreState => {\n // Helper to update local state after ORM operations\n const syncState = async () => {\n const ormState = await store.getFullState();\n set({\n properties: ormState.properties,\n currentPropertyId: ormState.currentPropertyId,\n currentPropertySlug: ormState.currentPropertySlug,\n hasPreviouslySearched: ormState.hasPreviouslySearched,\n unitResults: ormState.unitResults,\n filters: ormState.filters,\n tempFilters: ormState.tempFilters,\n apiFilters: ormState.apiFilters,\n resultsMode: ormState.resultsMode,\n resolvedQuestionnaireValues: ormState.resolvedQuestionnaireValues,\n sortBy: ormState.sortBy,\n });\n };\n\n // Helper to notify of filter updates\n const notifyFilterUpdate = async () => {\n if (options?.onFilterUpdate) {\n const apiFilters = (await store.getFullState()).apiFilters;\n options.onFilterUpdate(apiFilters);\n }\n };\n\n return {\n // Initial state\n properties: {},\n currentPropertyId: null,\n currentPropertySlug: null,\n hasPreviouslySearched: [],\n unitResults: [],\n filters: {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n },\n tempFilters: {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n },\n apiFilters: {\n limit: 10,\n page: 1,\n sortBy: \"relevance\",\n },\n resultsMode: \"all\",\n resolvedQuestionnaireValues: {},\n sortBy: \"relevance\",\n filtersLoaded: false,\n\n // === PROPERTY OPERATIONS ===\n async initializeProperty(propertyId, slug) {\n await store.initializeProperty(propertyId, slug);\n await syncState();\n },\n\n async setCurrentProperty(propertyId, slug) {\n await store.setCurrentProperty(propertyId, slug);\n set({\n currentPropertyId: propertyId,\n ...(slug && { currentPropertySlug: slug })\n });\n },\n\n async setCurrentPropertySlug(slug) {\n await store.setCurrentPropertySlug(slug);\n set({ currentPropertySlug: slug });\n },\n\n async setHasPreviouslySearched(slug) {\n await store.setHasPreviouslySearched(slug);\n await syncState();\n },\n\n async toggleFavorite(unitId) {\n await store.toggleFavorite(unitId);\n await syncState();\n },\n\n async markUnitAsViewed(unitId, slug) {\n await store.markUnitAsViewed(unitId, slug);\n await syncState();\n },\n\n async setTourContactedOn() {\n await store.setTourContactedOn();\n await syncState();\n },\n\n getTourContactedOn: store.getTourContactedOn.bind(store),\n\n async setQuestionnaireResults(results) {\n await store.setQuestionnaireResults(results);\n await syncState();\n },\n\n async setTourContactData(data) {\n await store.setTourContactData(data);\n await syncState();\n },\n\n async setUnitResults(units) {\n await store.setUnitResults(units);\n await syncState();\n },\n\n async clearUnitResults() {\n await store.clearUnitResults();\n await syncState();\n },\n\n\n // === FILTER OPERATIONS ===\n async setFilters(filters) {\n await store.setFilters(filters);\n const state = get();\n set({ filters: { ...state.filters, ...filters } });\n },\n\n async setTempFilters(filters) {\n await store.setTempFilters(filters);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, ...filters } });\n },\n\n async setFiltersToDefault() {\n await store.setFiltersToDefault();\n const defaultFilters = {\n date_availability: undefined,\n qty_bedrooms: undefined,\n base_price: undefined,\n highlights: undefined,\n };\n set({ filters: defaultFilters });\n },\n\n async setApiFilters(filters) {\n await store.setApiFilters(filters);\n const state = get();\n set({ apiFilters: { ...state.apiFilters, ...filters } });\n },\n\n async handleTempFilterChange(key, value) {\n await store.handleTempFilterChange(key, value);\n const state = get();\n set({ tempFilters: { ...state.tempFilters, [key]: value } });\n },\n\n async submitFilterUpdate() {\n await store.submitFilterUpdate();\n await syncState();\n await notifyFilterUpdate();\n },\n\n // === RESULTS AND SORTING ===\n async setResultsMode(mode) {\n await store.setResultsMode(mode);\n set({ resultsMode: mode });\n },\n\n async setSortBy(sortBy) {\n await store.setSortBy(sortBy);\n set({ sortBy });\n },\n\n // === QUESTIONNAIRE ===\n async setResolvedQuestionnaireValues(name, values) {\n await store.setResolvedQuestionnaireValues(name, values);\n const state = get();\n set({\n resolvedQuestionnaireValues: {\n ...state.resolvedQuestionnaireValues,\n [name]: values,\n }\n });\n },\n\n // === UTILITY METHODS ===\n getUnitState(unitId: string) {\n const state = get();\n const property = state.currentPropertyId ? state.properties[state.currentPropertyId] : null;\n\n return {\n isFavorite: property?.favoritedUnits.includes(unitId) ?? false,\n viewedDate:\n property?.viewedUnits.find((u: any) => u.unitId === unitId)?.viewedDate ?? \"\",\n };\n },\n\n getResultsUrl: store.getResultsUrl.bind(store),\n getCurrentProperty: store.getCurrentProperty.bind(store),\n getPropertyData: store.getPropertyData.bind(store),\n\n // === INTERNAL ===\n async _hydrate() {\n await syncState();\n },\n\n async _initialize() {\n await store.initialize();\n await syncState();\n set({ filtersLoaded: true });\n },\n };\n };\n}\n\n// Helper hook factory for unit state\nexport function createUseUnitState() {\n return (useStore: any) => (unitId: string) =>\n useStore((state: ZustandUnifiedStoreState) => state.getUnitState(unitId));\n}\n\n// Export types for consuming apps\nexport type { UnitData, UserPropertyState, Filters, QueryParams, ResultsMode, SortBy, TourContactData, Unit } from \"../schema\";\n\n// Intentionally no alias exports in vNext; use `createStructuredStore` or `createZustandUnifiedStore` explicitly.\n"],"names":["createZustandUnifiedStore","options","set","get","syncState","ormState","store","notifyFilterUpdate","apiFilters","propertyId","slug","unitId","results","data","units","filters","state","key","value","mode","sortBy","name","values","property","_a","u","createUseUnitState","useStore"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs"),t=e.object({mediaId:e.number().int(),propertyId:e.number().int()});exports.AmenityImagesOnPropertyModel=t;
2
+ //# sourceMappingURL=amenityimagesonproperty.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amenityimagesonproperty.cjs","sources":["../../src/base/amenityimagesonproperty.ts"],"sourcesContent":["import {z} from \"zod\";\n\n\nexport const AmenityImagesOnPropertyModel = z.object({\n mediaId: z.number().int(),\n propertyId: z.number().int(),\n });"],"names":["AmenityImagesOnPropertyModel","z.object","z.number"],"mappings":"mKAGaA,EAA+BC,EAAAA,OAAS,CACjD,QAASC,EAAAA,OAAE,EAAS,IAAA,EACpB,WAAYA,EAAAA,OAAE,EAAS,IAAA,CACzB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from "zod";
2
+ export declare const AmenityImagesOnPropertyModel: z.ZodObject<{
3
+ mediaId: z.ZodNumber;
4
+ propertyId: z.ZodNumber;
5
+ }, "strip", z.ZodTypeAny, {
6
+ propertyId: number;
7
+ mediaId: number;
8
+ }, {
9
+ propertyId: number;
10
+ mediaId: number;
11
+ }>;
@@ -0,0 +1,9 @@
1
+ import { object as t, number as e } from "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs";
2
+ const r = t({
3
+ mediaId: e().int(),
4
+ propertyId: e().int()
5
+ });
6
+ export {
7
+ r as AmenityImagesOnPropertyModel
8
+ };
9
+ //# sourceMappingURL=amenityimagesonproperty.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amenityimagesonproperty.mjs","sources":["../../src/base/amenityimagesonproperty.ts"],"sourcesContent":["import {z} from \"zod\";\n\n\nexport const AmenityImagesOnPropertyModel = z.object({\n mediaId: z.number().int(),\n propertyId: z.number().int(),\n });"],"names":["AmenityImagesOnPropertyModel","z.object","z.number"],"mappings":";AAGO,MAAMA,IAA+BC,EAAS;AAAA,EACjD,SAASC,EAAE,EAAS,IAAA;AAAA,EACpB,YAAYA,EAAE,EAAS,IAAA;AACzB,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var _=(E=>(E.UN_RENDERED="UN_RENDERED",E.IN_QUEUE="IN_QUEUE",E.RENDERING="RENDERING",E.RENDERED="RENDERED",E.FAILED="FAILED",E))(_||{}),O=(E=>(E.NOT_STARTED="NOT_STARTED",E.IN_QUEUE="IN_QUEUE",E.IN_PROGRESS="IN_PROGRESS",E.COMPLETED="COMPLETED",E.FAILED="FAILED",E))(O||{}),S=(E=>(E.Hyly="Hyly",E.GoogleAnalytics="GoogleAnalytics",E))(S||{}),I=(E=>(E.Pending="Pending",E.Failed="Failed",E.Success="Success",E))(I||{}),T=(E=>(E.image="image",E.video="video",E.model="model",E.audio="audio",E.json="json",E.blend="blend",E.logs="logs",E))(T||{}),N=(E=>(E.USER="USER",E.ADMIN="ADMIN",E))(N||{}),A=(E=>(E.archived="archived",E.active="active",E))(A||{}),R=(E=>(E.IN_STOCK="IN_STOCK",E.SOLD_OUT="SOLD_OUT",E.WAIT_LIST="WAIT_LIST",E))(R||{}),L=(E=>(E.USD="USD",E.GBP="GBP",E))(L||{}),D=(E=>(E.GOOD_VIEW="GOOD_VIEW",E.SUNSET_VIEWS="SUNSET_VIEWS",E.GOOD_FOR_HOSTING="GOOD_FOR_HOSTING",E.LOTS_OF_WINDOWS="LOTS_OF_WINDOWS",E.BATHTUB="BATHTUB",E.SOUTH_FACING="SOUTH_FACING",E.CLOSE_TO_ELEVATOR="CLOSE_TO_ELEVATOR",E.PEACE_AND_QUIET="PEACE_AND_QUIET",E.LARGE_LIVING_ROOM="LARGE_LIVING_ROOM",E.LARGE_BEDROOM="LARGE_BEDROOM",E.PRIVATE_TERRACE="PRIVATE_TERRACE",E.WALK_IN_CLOSET="WALK_IN_CLOSET",E.LOTS_OF_LIGHT="LOTS_OF_LIGHT",E.LOTS_OF_STORAGE="LOTS_OF_STORAGE",E.HIS_AND_HERS_SINKS="HIS_AND_HERS_SINKS",E.COUNTER_SPACE="COUNTER_SPACE",E.BALCONY="BALCONY",E.WHEELCHAIR_ACCESSIBLE="WHEELCHAIR_ACCESSIBLE",E))(D||{});exports.Currency=L;exports.DeliveryStatus=I;exports.ExternalService=S;exports.FurnitureAvailability=R;exports.Highlights=D;exports.MediaType=T;exports.QueueJobStatus=O;exports.RenderStatus=_;exports.Status=A;exports.UserRole=N;
2
+ //# sourceMappingURL=enums.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.cjs","sources":["../../src/base/enums.ts"],"sourcesContent":["export enum RenderStatus {\n UN_RENDERED = 'UN_RENDERED',\n IN_QUEUE = 'IN_QUEUE',\n RENDERING = 'RENDERING',\n RENDERED = 'RENDERED',\n FAILED = 'FAILED',\n }\n \n export enum QueueJobStatus {\n NOT_STARTED = 'NOT_STARTED',\n IN_QUEUE = 'IN_QUEUE',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n }\n \n export enum ExternalService {\n Hyly = 'Hyly',\n GoogleAnalytics = 'GoogleAnalytics',\n }\n \n export enum DeliveryStatus {\n Pending = 'Pending',\n Failed = 'Failed',\n Success = 'Success',\n }\n \n export enum MediaType {\n image = 'image',\n video = 'video',\n model = 'model',\n audio = 'audio',\n json = 'json',\n blend = 'blend',\n logs = 'logs',\n }\n \n export enum UserRole {\n USER = 'USER',\n ADMIN = 'ADMIN',\n }\n \n export enum Status {\n archived = 'archived',\n active = 'active',\n }\n \n export enum FurnitureAvailability {\n IN_STOCK = 'IN_STOCK',\n SOLD_OUT = 'SOLD_OUT',\n WAIT_LIST = 'WAIT_LIST',\n }\n \n export enum Currency {\n USD = 'USD',\n GBP = 'GBP',\n }\n \n export enum Highlights {\n GOOD_VIEW = 'GOOD_VIEW',\n SUNSET_VIEWS = 'SUNSET_VIEWS',\n GOOD_FOR_HOSTING = 'GOOD_FOR_HOSTING',\n LOTS_OF_WINDOWS = 'LOTS_OF_WINDOWS',\n BATHTUB = 'BATHTUB',\n SOUTH_FACING = 'SOUTH_FACING',\n CLOSE_TO_ELEVATOR = 'CLOSE_TO_ELEVATOR',\n PEACE_AND_QUIET = 'PEACE_AND_QUIET',\n LARGE_LIVING_ROOM = 'LARGE_LIVING_ROOM',\n LARGE_BEDROOM = 'LARGE_BEDROOM',\n PRIVATE_TERRACE = 'PRIVATE_TERRACE',\n WALK_IN_CLOSET = 'WALK_IN_CLOSET',\n LOTS_OF_LIGHT = 'LOTS_OF_LIGHT',\n LOTS_OF_STORAGE = 'LOTS_OF_STORAGE',\n HIS_AND_HERS_SINKS = 'HIS_AND_HERS_SINKS',\n COUNTER_SPACE = 'COUNTER_SPACE',\n BALCONY = 'BALCONY',\n WHEELCHAIR_ACCESSIBLE = 'WHEELCHAIR_ACCESSIBLE',\n }\n "],"names":["RenderStatus","QueueJobStatus","ExternalService","DeliveryStatus","MediaType","UserRole","Status","FurnitureAvailability","Currency","Highlights"],"mappings":"gFAAO,IAAKA,GAAAA,IACRA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,UAAY,YACZA,EAAA,SAAW,WACXA,EAAA,OAAS,SALDA,IAAAA,GAAA,CAAA,CAAA,EAQEC,GAAAA,IACVA,EAAA,YAAc,cACdA,EAAA,SAAW,WACXA,EAAA,YAAc,cACdA,EAAA,UAAY,YACZA,EAAA,OAAS,SALCA,IAAAA,GAAA,CAAA,CAAA,EAQAC,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,gBAAkB,kBAFRA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,QAAU,UAHAA,IAAAA,GAAA,CAAA,CAAA,EAMAC,GAAAA,IACVA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,MAAQ,QACRA,EAAA,KAAO,OAPGA,IAAAA,GAAA,CAAA,CAAA,EAUAC,GAAAA,IACVA,EAAA,KAAO,OACPA,EAAA,MAAQ,QAFEA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,SAAW,WACXA,EAAA,OAAS,SAFCA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,SAAW,WACXA,EAAA,SAAW,WACXA,EAAA,UAAY,YAHFA,IAAAA,GAAA,CAAA,CAAA,EAMAC,GAAAA,IACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MAFIA,IAAAA,GAAA,CAAA,CAAA,EAKAC,GAAAA,IACVA,EAAA,UAAY,YACZA,EAAA,aAAe,eACfA,EAAA,iBAAmB,mBACnBA,EAAA,gBAAkB,kBAClBA,EAAA,QAAU,UACVA,EAAA,aAAe,eACfA,EAAA,kBAAoB,oBACpBA,EAAA,gBAAkB,kBAClBA,EAAA,kBAAoB,oBACpBA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAClBA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,gBAChBA,EAAA,gBAAkB,kBAClBA,EAAA,mBAAqB,qBACrBA,EAAA,cAAgB,gBAChBA,EAAA,QAAU,UACVA,EAAA,sBAAwB,wBAlBdA,IAAAA,GAAA,CAAA,CAAA"}
@@ -0,0 +1,69 @@
1
+ export declare enum RenderStatus {
2
+ UN_RENDERED = "UN_RENDERED",
3
+ IN_QUEUE = "IN_QUEUE",
4
+ RENDERING = "RENDERING",
5
+ RENDERED = "RENDERED",
6
+ FAILED = "FAILED"
7
+ }
8
+ export declare enum QueueJobStatus {
9
+ NOT_STARTED = "NOT_STARTED",
10
+ IN_QUEUE = "IN_QUEUE",
11
+ IN_PROGRESS = "IN_PROGRESS",
12
+ COMPLETED = "COMPLETED",
13
+ FAILED = "FAILED"
14
+ }
15
+ export declare enum ExternalService {
16
+ Hyly = "Hyly",
17
+ GoogleAnalytics = "GoogleAnalytics"
18
+ }
19
+ export declare enum DeliveryStatus {
20
+ Pending = "Pending",
21
+ Failed = "Failed",
22
+ Success = "Success"
23
+ }
24
+ export declare enum MediaType {
25
+ image = "image",
26
+ video = "video",
27
+ model = "model",
28
+ audio = "audio",
29
+ json = "json",
30
+ blend = "blend",
31
+ logs = "logs"
32
+ }
33
+ export declare enum UserRole {
34
+ USER = "USER",
35
+ ADMIN = "ADMIN"
36
+ }
37
+ export declare enum Status {
38
+ archived = "archived",
39
+ active = "active"
40
+ }
41
+ export declare enum FurnitureAvailability {
42
+ IN_STOCK = "IN_STOCK",
43
+ SOLD_OUT = "SOLD_OUT",
44
+ WAIT_LIST = "WAIT_LIST"
45
+ }
46
+ export declare enum Currency {
47
+ USD = "USD",
48
+ GBP = "GBP"
49
+ }
50
+ export declare enum Highlights {
51
+ GOOD_VIEW = "GOOD_VIEW",
52
+ SUNSET_VIEWS = "SUNSET_VIEWS",
53
+ GOOD_FOR_HOSTING = "GOOD_FOR_HOSTING",
54
+ LOTS_OF_WINDOWS = "LOTS_OF_WINDOWS",
55
+ BATHTUB = "BATHTUB",
56
+ SOUTH_FACING = "SOUTH_FACING",
57
+ CLOSE_TO_ELEVATOR = "CLOSE_TO_ELEVATOR",
58
+ PEACE_AND_QUIET = "PEACE_AND_QUIET",
59
+ LARGE_LIVING_ROOM = "LARGE_LIVING_ROOM",
60
+ LARGE_BEDROOM = "LARGE_BEDROOM",
61
+ PRIVATE_TERRACE = "PRIVATE_TERRACE",
62
+ WALK_IN_CLOSET = "WALK_IN_CLOSET",
63
+ LOTS_OF_LIGHT = "LOTS_OF_LIGHT",
64
+ LOTS_OF_STORAGE = "LOTS_OF_STORAGE",
65
+ HIS_AND_HERS_SINKS = "HIS_AND_HERS_SINKS",
66
+ COUNTER_SPACE = "COUNTER_SPACE",
67
+ BALCONY = "BALCONY",
68
+ WHEELCHAIR_ACCESSIBLE = "WHEELCHAIR_ACCESSIBLE"
69
+ }
@@ -0,0 +1,14 @@
1
+ var _ = /* @__PURE__ */ ((E) => (E.UN_RENDERED = "UN_RENDERED", E.IN_QUEUE = "IN_QUEUE", E.RENDERING = "RENDERING", E.RENDERED = "RENDERED", E.FAILED = "FAILED", E))(_ || {}), O = /* @__PURE__ */ ((E) => (E.NOT_STARTED = "NOT_STARTED", E.IN_QUEUE = "IN_QUEUE", E.IN_PROGRESS = "IN_PROGRESS", E.COMPLETED = "COMPLETED", E.FAILED = "FAILED", E))(O || {}), I = /* @__PURE__ */ ((E) => (E.Hyly = "Hyly", E.GoogleAnalytics = "GoogleAnalytics", E))(I || {}), N = /* @__PURE__ */ ((E) => (E.Pending = "Pending", E.Failed = "Failed", E.Success = "Success", E))(N || {}), S = /* @__PURE__ */ ((E) => (E.image = "image", E.video = "video", E.model = "model", E.audio = "audio", E.json = "json", E.blend = "blend", E.logs = "logs", E))(S || {}), T = /* @__PURE__ */ ((E) => (E.USER = "USER", E.ADMIN = "ADMIN", E))(T || {}), A = /* @__PURE__ */ ((E) => (E.archived = "archived", E.active = "active", E))(A || {}), R = /* @__PURE__ */ ((E) => (E.IN_STOCK = "IN_STOCK", E.SOLD_OUT = "SOLD_OUT", E.WAIT_LIST = "WAIT_LIST", E))(R || {}), L = /* @__PURE__ */ ((E) => (E.USD = "USD", E.GBP = "GBP", E))(L || {}), D = /* @__PURE__ */ ((E) => (E.GOOD_VIEW = "GOOD_VIEW", E.SUNSET_VIEWS = "SUNSET_VIEWS", E.GOOD_FOR_HOSTING = "GOOD_FOR_HOSTING", E.LOTS_OF_WINDOWS = "LOTS_OF_WINDOWS", E.BATHTUB = "BATHTUB", E.SOUTH_FACING = "SOUTH_FACING", E.CLOSE_TO_ELEVATOR = "CLOSE_TO_ELEVATOR", E.PEACE_AND_QUIET = "PEACE_AND_QUIET", E.LARGE_LIVING_ROOM = "LARGE_LIVING_ROOM", E.LARGE_BEDROOM = "LARGE_BEDROOM", E.PRIVATE_TERRACE = "PRIVATE_TERRACE", E.WALK_IN_CLOSET = "WALK_IN_CLOSET", E.LOTS_OF_LIGHT = "LOTS_OF_LIGHT", E.LOTS_OF_STORAGE = "LOTS_OF_STORAGE", E.HIS_AND_HERS_SINKS = "HIS_AND_HERS_SINKS", E.COUNTER_SPACE = "COUNTER_SPACE", E.BALCONY = "BALCONY", E.WHEELCHAIR_ACCESSIBLE = "WHEELCHAIR_ACCESSIBLE", E))(D || {});
2
+ export {
3
+ L as Currency,
4
+ N as DeliveryStatus,
5
+ I as ExternalService,
6
+ R as FurnitureAvailability,
7
+ D as Highlights,
8
+ S as MediaType,
9
+ O as QueueJobStatus,
10
+ _ as RenderStatus,
11
+ A as Status,
12
+ T as UserRole
13
+ };
14
+ //# sourceMappingURL=enums.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.mjs","sources":["../../src/base/enums.ts"],"sourcesContent":["export enum RenderStatus {\n UN_RENDERED = 'UN_RENDERED',\n IN_QUEUE = 'IN_QUEUE',\n RENDERING = 'RENDERING',\n RENDERED = 'RENDERED',\n FAILED = 'FAILED',\n }\n \n export enum QueueJobStatus {\n NOT_STARTED = 'NOT_STARTED',\n IN_QUEUE = 'IN_QUEUE',\n IN_PROGRESS = 'IN_PROGRESS',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n }\n \n export enum ExternalService {\n Hyly = 'Hyly',\n GoogleAnalytics = 'GoogleAnalytics',\n }\n \n export enum DeliveryStatus {\n Pending = 'Pending',\n Failed = 'Failed',\n Success = 'Success',\n }\n \n export enum MediaType {\n image = 'image',\n video = 'video',\n model = 'model',\n audio = 'audio',\n json = 'json',\n blend = 'blend',\n logs = 'logs',\n }\n \n export enum UserRole {\n USER = 'USER',\n ADMIN = 'ADMIN',\n }\n \n export enum Status {\n archived = 'archived',\n active = 'active',\n }\n \n export enum FurnitureAvailability {\n IN_STOCK = 'IN_STOCK',\n SOLD_OUT = 'SOLD_OUT',\n WAIT_LIST = 'WAIT_LIST',\n }\n \n export enum Currency {\n USD = 'USD',\n GBP = 'GBP',\n }\n \n export enum Highlights {\n GOOD_VIEW = 'GOOD_VIEW',\n SUNSET_VIEWS = 'SUNSET_VIEWS',\n GOOD_FOR_HOSTING = 'GOOD_FOR_HOSTING',\n LOTS_OF_WINDOWS = 'LOTS_OF_WINDOWS',\n BATHTUB = 'BATHTUB',\n SOUTH_FACING = 'SOUTH_FACING',\n CLOSE_TO_ELEVATOR = 'CLOSE_TO_ELEVATOR',\n PEACE_AND_QUIET = 'PEACE_AND_QUIET',\n LARGE_LIVING_ROOM = 'LARGE_LIVING_ROOM',\n LARGE_BEDROOM = 'LARGE_BEDROOM',\n PRIVATE_TERRACE = 'PRIVATE_TERRACE',\n WALK_IN_CLOSET = 'WALK_IN_CLOSET',\n LOTS_OF_LIGHT = 'LOTS_OF_LIGHT',\n LOTS_OF_STORAGE = 'LOTS_OF_STORAGE',\n HIS_AND_HERS_SINKS = 'HIS_AND_HERS_SINKS',\n COUNTER_SPACE = 'COUNTER_SPACE',\n BALCONY = 'BALCONY',\n WHEELCHAIR_ACCESSIBLE = 'WHEELCHAIR_ACCESSIBLE',\n }\n "],"names":["RenderStatus","QueueJobStatus","ExternalService","DeliveryStatus","MediaType","UserRole","Status","FurnitureAvailability","Currency","Highlights"],"mappings":"AAAO,IAAKA,sBAAAA,OACRA,EAAA,cAAc,eACdA,EAAA,WAAW,YACXA,EAAA,YAAY,aACZA,EAAA,WAAW,YACXA,EAAA,SAAS,UALDA,IAAAA,KAAA,CAAA,CAAA,GAQEC,sBAAAA,OACVA,EAAA,cAAc,eACdA,EAAA,WAAW,YACXA,EAAA,cAAc,eACdA,EAAA,YAAY,aACZA,EAAA,SAAS,UALCA,IAAAA,KAAA,CAAA,CAAA,GAQAC,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,kBAAkB,mBAFRA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAA,UAAU,WACVA,EAAA,SAAS,UACTA,EAAA,UAAU,WAHAA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,QAAQ,SACRA,EAAA,OAAO,QACPA,EAAA,QAAQ,SACRA,EAAA,OAAO,QAPGA,IAAAA,KAAA,CAAA,CAAA,GAUAC,sBAAAA,OACVA,EAAA,OAAO,QACPA,EAAA,QAAQ,SAFEA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,SAAS,UAFCA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAA,WAAW,YACXA,EAAA,WAAW,YACXA,EAAA,YAAY,aAHFA,IAAAA,KAAA,CAAA,CAAA,GAMAC,sBAAAA,OACVA,EAAA,MAAM,OACNA,EAAA,MAAM,OAFIA,IAAAA,KAAA,CAAA,CAAA,GAKAC,sBAAAA,OACVA,EAAA,YAAY,aACZA,EAAA,eAAe,gBACfA,EAAA,mBAAmB,oBACnBA,EAAA,kBAAkB,mBAClBA,EAAA,UAAU,WACVA,EAAA,eAAe,gBACfA,EAAA,oBAAoB,qBACpBA,EAAA,kBAAkB,mBAClBA,EAAA,oBAAoB,qBACpBA,EAAA,gBAAgB,iBAChBA,EAAA,kBAAkB,mBAClBA,EAAA,iBAAiB,kBACjBA,EAAA,gBAAgB,iBAChBA,EAAA,kBAAkB,mBAClBA,EAAA,qBAAqB,sBACrBA,EAAA,gBAAgB,iBAChBA,EAAA,UAAU,WACVA,EAAA,wBAAwB,yBAlBdA,IAAAA,KAAA,CAAA,CAAA;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs"),t=e.object({userId:e.number().int(),unitId:e.number().int(),createdAt:e.date()});exports.FavoriteUnitModel=t;
2
+ //# sourceMappingURL=favoriteunit.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favoriteunit.cjs","sources":["../../src/base/favoriteunit.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const FavoriteUnitModel = z.object({\n userId: z.number().int(),\n unitId: z.number().int(),\n createdAt: z.date(),\n });"],"names":["FavoriteUnitModel","z.object","z.number","z.date"],"mappings":"mKAEaA,EAAoBC,EAAAA,OAAS,CACtC,OAAQC,EAAAA,OAAE,EAAS,IAAA,EACnB,OAAQA,EAAAA,OAAE,EAAS,IAAA,EACnB,UAAWC,EAAAA,KAAE,CACf,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { z } from "zod";
2
+ export declare const FavoriteUnitModel: z.ZodObject<{
3
+ userId: z.ZodNumber;
4
+ unitId: z.ZodNumber;
5
+ createdAt: z.ZodDate;
6
+ }, "strip", z.ZodTypeAny, {
7
+ createdAt: Date;
8
+ userId: number;
9
+ unitId: number;
10
+ }, {
11
+ createdAt: Date;
12
+ userId: number;
13
+ unitId: number;
14
+ }>;
@@ -0,0 +1,10 @@
1
+ import { object as t, date as o, number as e } from "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs";
2
+ const a = t({
3
+ userId: e().int(),
4
+ unitId: e().int(),
5
+ createdAt: o()
6
+ });
7
+ export {
8
+ a as FavoriteUnitModel
9
+ };
10
+ //# sourceMappingURL=favoriteunit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"favoriteunit.mjs","sources":["../../src/base/favoriteunit.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const FavoriteUnitModel = z.object({\n userId: z.number().int(),\n unitId: z.number().int(),\n createdAt: z.date(),\n });"],"names":["FavoriteUnitModel","z.object","z.number","z.date"],"mappings":";AAEO,MAAMA,IAAoBC,EAAS;AAAA,EACtC,QAAQC,EAAE,EAAS,IAAA;AAAA,EACnB,QAAQA,EAAE,EAAS,IAAA;AAAA,EACnB,WAAWC,EAAE;AACf,CAAC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs"),n=e.object({id:e.number().int(),name:e.string(),description:e.string(),customerId:e.number().int().nullish(),blenderVersion:e.string(),inresiVersion:e.string(),currentVersion:e.number().int()});exports.FloorPlanModel=n;
2
+ //# sourceMappingURL=floorplan.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floorplan.cjs","sources":["../../src/base/floorplan.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const FloorPlanModel = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n customerId: z.number().int().nullish(),\n blenderVersion: z.string(),\n inresiVersion: z.string(),\n currentVersion: z.number().int(),\n });"],"names":["FloorPlanModel","z.object","z.number","z.string"],"mappings":"mKAEaA,EAAiBC,EAAAA,OAAS,CACnC,GAAIC,EAAAA,OAAE,EAAS,IAAA,EACf,KAAMC,EAAAA,OAAE,EACR,YAAaA,EAAAA,OAAE,EACf,WAAYD,EAAAA,OAAE,EAAS,IAAA,EAAM,QAAA,EAC7B,eAAgBC,EAAAA,OAAE,EAClB,cAAeA,EAAAA,OAAE,EACjB,eAAgBD,EAAAA,OAAE,EAAS,IAAA,CAC7B,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ export declare const FloorPlanModel: z.ZodObject<{
3
+ id: z.ZodNumber;
4
+ name: z.ZodString;
5
+ description: z.ZodString;
6
+ customerId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
7
+ blenderVersion: z.ZodString;
8
+ inresiVersion: z.ZodString;
9
+ currentVersion: z.ZodNumber;
10
+ }, "strip", z.ZodTypeAny, {
11
+ id: number;
12
+ description: string;
13
+ name: string;
14
+ blenderVersion: string;
15
+ inresiVersion: string;
16
+ currentVersion: number;
17
+ customerId?: number | null | undefined;
18
+ }, {
19
+ id: number;
20
+ description: string;
21
+ name: string;
22
+ blenderVersion: string;
23
+ inresiVersion: string;
24
+ currentVersion: number;
25
+ customerId?: number | null | undefined;
26
+ }>;
@@ -0,0 +1,14 @@
1
+ import { object as r, number as n, string as e } from "../node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs";
2
+ const o = r({
3
+ id: n().int(),
4
+ name: e(),
5
+ description: e(),
6
+ customerId: n().int().nullish(),
7
+ blenderVersion: e(),
8
+ inresiVersion: e(),
9
+ currentVersion: n().int()
10
+ });
11
+ export {
12
+ o as FloorPlanModel
13
+ };
14
+ //# sourceMappingURL=floorplan.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floorplan.mjs","sources":["../../src/base/floorplan.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const FloorPlanModel = z.object({\n id: z.number().int(),\n name: z.string(),\n description: z.string(),\n customerId: z.number().int().nullish(),\n blenderVersion: z.string(),\n inresiVersion: z.string(),\n currentVersion: z.number().int(),\n });"],"names":["FloorPlanModel","z.object","z.number","z.string"],"mappings":";AAEO,MAAMA,IAAiBC,EAAS;AAAA,EACnC,IAAIC,EAAE,EAAS,IAAA;AAAA,EACf,MAAMC,EAAE;AAAA,EACR,aAAaA,EAAE;AAAA,EACf,YAAYD,EAAE,EAAS,IAAA,EAAM,QAAA;AAAA,EAC7B,gBAAgBC,EAAE;AAAA,EAClB,eAAeA,EAAE;AAAA,EACjB,gBAAgBD,EAAE,EAAS,IAAA;AAC7B,CAAC;"}
@@ -0,0 +1,14 @@
1
+ export * from "./overviewimagesonproperty";
2
+ export * from "./amenityimagesonproperty";
3
+ export * from "./floorplan";
4
+ export * from "./media";
5
+ export * from "./property";
6
+ export * from "./propertyhighlight";
7
+ export * from "./room";
8
+ export * from "./style";
9
+ export * from "./unit";
10
+ export * from "./enums";
11
+ export * from "./renderedstyle";
12
+ export * from "./propertyamenity";
13
+ export * from "./favoriteunit";
14
+ export * from "./user";