@superbright/indexeddb-orm 1.0.30 → 1.0.32
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.
- package/dist/adapters/zustand-store.cjs +1 -1
- package/dist/adapters/zustand-store.cjs.map +1 -1
- package/dist/adapters/zustand-store.d.ts +2 -6
- package/dist/adapters/zustand-store.mjs +212 -167
- package/dist/adapters/zustand-store.mjs.map +1 -1
- package/dist/base/enums.cjs +1 -1
- package/dist/base/enums.cjs.map +1 -1
- package/dist/base/enums.d.ts +4 -0
- package/dist/base/enums.mjs +2 -1
- package/dist/base/enums.mjs.map +1 -1
- package/dist/base/userinquiry.d.ts +23 -0
- package/dist/base/visitor.d.ts +17 -0
- package/dist/base/visitorfilter.d.ts +25 -0
- package/dist/base/visitorquestionnaire.d.ts +25 -0
- package/dist/base/visitorunitengagement.d.ts +24 -0
- package/dist/features/units/transformers.cjs.map +1 -1
- package/dist/features/units/transformers.d.ts +2 -0
- package/dist/features/units/transformers.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -5
- package/dist/index.mjs +111 -127
- package/dist/index.mjs.map +1 -1
- package/dist/schema.cjs +1 -1
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.ts +13 -41
- package/dist/schema.mjs +63 -74
- package/dist/schema.mjs.map +1 -1
- package/dist/stores/store.cjs +1 -1
- package/dist/stores/store.cjs.map +1 -1
- package/dist/stores/store.d.ts +5 -73
- package/dist/stores/store.mjs +53 -254
- package/dist/stores/store.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/api/favorites.cjs +0 -2
- package/dist/api/favorites.cjs.map +0 -1
- package/dist/api/favorites.d.ts +0 -4
- package/dist/api/favorites.mjs +0 -34
- package/dist/api/favorites.mjs.map +0 -1
- package/dist/api/properties.cjs +0 -2
- package/dist/api/properties.cjs.map +0 -1
- package/dist/api/properties.d.ts +0 -22
- package/dist/api/properties.mjs +0 -197
- package/dist/api/properties.mjs.map +0 -1
- package/dist/api/users.cjs +0 -2
- package/dist/api/users.cjs.map +0 -1
- package/dist/api/users.d.ts +0 -5
- package/dist/api/users.mjs +0 -54
- package/dist/api/users.mjs.map +0 -1
- package/dist/units/favorites.cjs +0 -2
- package/dist/units/favorites.cjs.map +0 -1
- package/dist/units/favorites.d.ts +0 -7
- package/dist/units/favorites.mjs +0 -19
- package/dist/units/favorites.mjs.map +0 -1
package/dist/schema.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.cjs"),m=1,g=n.object({uuid:n.string().uuid(),createdAt:n.string().datetime().optional()}),u=n.object({isFavorite:n.boolean().optional(),viewedDate:n.string().optional()}),p=u,a=n.union([n.string(),n.number(),n.boolean(),n.record(n.unknown())]),b=n.union([a,n.array(a)]),t=n.object({date_availability:b.nullable().optional(),qty_bedrooms:n.union([n.array(a),n.null()]).optional(),base_price:n.number().nullable().optional(),highlights:n.array(a).optional()}),i=n.enum(["all","bestFit","closestMatch","favorites","loading"]),o=n.enum(["relevance","newest","cost_low_to_high","cost_high_to_low"]),r=n.object({limit:n.number().default(10),page:n.number().default(1),sortBy:o.default("relevance"),base_price:n.number().nullable().optional(),date_availability:n.array(n.string()).optional(),qty_bedrooms:n.array(n.number()).optional(),highlights:n.array(n.string()).optional(),nearBuilding:n.array(n.string()).optional(),nearNeighbourhood:n.array(n.string()).optional()}),y=n.object({data:n.record(p),filters:t,tempFilters:t,apiFilters:r,resultsMode:i,propertySlug:n.string().nullable(),resolvedQuestionnaireValues:n.record(n.array(n.string())),sortBy:o}),e=n.object({id:n.union([n.number().int(),n.string()]).optional(),name:n.string(),slug:n.string().nullable().optional(),qty_bedrooms:n.coerce.number().nullable().optional(),qty_bathrooms:n.coerce.number().nullable().optional(),base_price:n.coerce.number().nullable().optional(),dim_sq_ft:n.coerce.number().nullable().optional(),propertyId:n.union([n.number().int(),n.string()]).optional(),is_available:n.boolean().optional(),createdAt:n.string().datetime().optional(),updatedAt:n.string().datetime().optional(),date_availability:n.string().datetime().nullable().optional(),unitSetAvailableOn:n.string().datetime().nullable().optional(),floorPlanId:n.union([n.number().int(),n.string()]).nullable().optional(),property:n.unknown().optional(),amenities:n.array(n.unknown()).optional(),highlights:n.array(n.unknown()).optional(),floorPlan:n.unknown().nullable().optional(),renderedStyle:n.array(n.unknown()).optional(),video:n.unknown().nullable().optional(),videoThumbnail:n.unknown().nullable().optional(),embedGif:n.unknown().nullable().optional(),userId:n.union([n.number().int(),n.string()]).optional(),user:n.unknown().optional(),status:n.string().optional(),external_id:n.string().nullable().optional(),unitRenderedStyles:n.array(n.unknown()).optional()}),l=n.object({id:n.union([n.number().int(),n.string()]),createdAt:n.string().datetime(),updatedAt:n.string().datetime(),name:n.string(),slug:n.string().nullable().optional(),description:n.string(),contact_name:n.string().nullable().optional(),contact_email:n.string().optional(),contact_phone:n.string().nullable().optional(),notification_email:n.string().nullable().optional(),logo:n.unknown().nullable().optional(),leadMedia:n.unknown().nullable().optional(),overviewImages:n.array(n.unknown()).optional(),amenityImages:n.array(n.unknown()).optional(),address_street:n.string().optional(),address_city:n.string().optional(),address_state:n.string().nullable().optional(),ingestionFileName:n.string().nullable().optional(),address_zip:n.string().optional(),address_country:n.string().optional(),units:n.array(e).optional(),amenities:n.array(n.unknown()).optional(),highlights:n.array(n.unknown()).optional(),externalServices:n.array(n.unknown()).optional(),userId:n.union([n.number().int(),n.string()]).optional(),user:n.unknown().optional(),status:n.string().optional(),floorPlans:n.array(n.unknown()).optional()}),h=n.object({id:n.union([n.number().int(),n.string()]).optional(),email:n.string().email().optional(),first_name:n.string().optional(),last_name:n.string().optional(),password:n.string().optional(),salt:n.string().optional(),role:n.string().optional(),Property:n.array(l).optional(),Unit:n.array(e).optional(),floorPlans:n.array(n.unknown()).optional(),createdAt:n.string().datetime().optional(),updatedAt:n.string().datetime().optional()}),c=n.object({unitId:n.string(),viewedDate:n.string()}),d=n.object({timezone:n.string().optional(),favouriteUnits:n.array(n.coerce.string()).optional(),preferences:n.record(n.unknown()).optional()}),s=n.object({id:n.coerce.string(),slug:n.string(),favoritedUnits:n.array(n.string()).optional(),tourContactedOn:n.string().nullable(),viewedUnits:n.array(c),questionnaireResults:n.unknown().nullable().optional(),tourContactData:d.nullable().optional(),data:l.optional()}),S=n.object({data:n.record(s),propertySlug:n.string().nullable(),propertyId:n.string().nullable(),hasPreviouslySearched:n.array(n.string())}),w=n.object({properties:n.record(s),currentPropertyId:n.string().nullable(),currentPropertySlug:n.string().nullable(),hasPreviouslySearched:n.array(n.string()),unitResults:n.array(e),filters:t,tempFilters:t,apiFilters:r,resultsMode:i,resolvedQuestionnaireValues:n.record(n.array(n.string())),sortBy:o});exports.ApiUserSchema=h;exports.AppStoreDataSchema=y;exports.FiltersSchema=t;exports.PropertySchema=l;exports.PropertyStoreDataSchema=S;exports.QueryParamsSchema=r;exports.ResultsModeEnum=i;exports.SCHEMA_VERSION=m;exports.SortByEnum=o;exports.TourContactDataSchema=d;exports.UnifiedStoreDataSchema=w;exports.UnitDataSchema=p;exports.UnitSchema=e;exports.UserPropertyStateSchema=s;exports.UserSchema=g;exports.UserUnitDataSchema=u;exports.ViewedUnitSchema=c;
|
|
2
2
|
//# sourceMappingURL=schema.cjs.map
|
package/dist/schema.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.cjs","sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const SCHEMA_VERSION = 1 as const;\n\n// Entities\nexport const UserSchema = z.object({\n uuid: z.string().uuid(),\n // stored as ISO string; include to match ensureUser()\n createdAt: z.string().datetime().optional(),\n});\nexport type User = z.infer<typeof UserSchema>;\n\n// User-specific Unit state\nexport const UserUnitDataSchema = z.object({\n isFavorite: z.boolean().optional(),\n viewedDate: z.string().optional(),\n});\n// Back-compat alias (to be deprecated): keep existing name\nexport const UnitDataSchema = UserUnitDataSchema;\nexport type UnitData = z.infer<typeof UserUnitDataSchema>;\n\n// Filters and query params\nconst FilterOptionValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.unknown()),\n]);\n\nconst FilterCollectionSchema = z.union([\n FilterOptionValueSchema,\n z.array(FilterOptionValueSchema),\n]);\n\nexport const FiltersSchema = z.object({\n date_availability: FilterCollectionSchema.nullable().optional(),\n qty_bedrooms: z.union([z.array(FilterOptionValueSchema), z.null()]).optional(),\n base_price: z.number().nullable().optional(),\n highlights: z.array(FilterOptionValueSchema).optional(),\n});\nexport type Filters = z.infer<typeof FiltersSchema>;\n\nexport const ResultsModeEnum = z.enum([\"all\", \"bestFit\", \"closestMatch\", \"favorites\", \"loading\"]);\nexport type ResultsMode = z.infer<typeof ResultsModeEnum>;\nexport const SortByEnum = z.enum([\"relevance\", \"newest\", \"cost_low_to_high\", \"cost_high_to_low\"]);\nexport type SortBy = z.infer<typeof SortByEnum>;\n\nexport const QueryParamsSchema = z.object({\n limit: z.number().default(10),\n page: z.number().default(1),\n sortBy: SortByEnum.default(\"relevance\"),\n base_price: z.number().nullable().optional(),\n date_availability: z.array(z.string()).optional(),\n qty_bedrooms: z.array(z.number()).optional(),\n highlights: z.array(z.string()).optional(),\n nearBuilding: z.array(z.string()).optional(),\n nearNeighbourhood: z.array(z.string()).optional(),\n});\nexport type QueryParams = z.infer<typeof QueryParamsSchema>;\n\n// App (standalone) persisted state\nexport const AppStoreDataSchema = z.object({\n data: z.record(UnitDataSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n propertySlug: z.string().nullable(),\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type AppStoreData = z.infer<typeof AppStoreDataSchema>;\n\n// Domain models (optional fields to mirror API shape without breaking)\n// Mirrors the backend Unit model with relaxed optional fields\nexport const UnitSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n qty_bedrooms: z.coerce.number().nullable().optional(),\n qty_bathrooms: z.coerce.number().nullable().optional(),\n base_price: z.coerce.number().nullable().optional(),\n dim_sq_ft: z.coerce.number().nullable().optional(),\n propertyId: z.union([z.number().int(), z.string()]).optional(),\n is_available: z.boolean().optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n date_availability: z.string().datetime().nullable().optional(),\n unitSetAvailableOn: z.string().datetime().nullable().optional(),\n floorPlanId: z.union([z.number().int(), z.string()]).nullable().optional(),\n // Relations and nested structures kept loose to avoid coupling\n property: z.unknown().optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n floorPlan: z.unknown().nullable().optional(),\n renderedStyle: z.array(z.unknown()).optional(),\n video: z.unknown().nullable().optional(),\n videoThumbnail: z.unknown().nullable().optional(),\n embedGif: z.unknown().nullable().optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n external_id: z.string().nullable().optional(),\n unitRenderedStyles: z.array(z.unknown()).optional(),\n});\nexport type Unit = z.infer<typeof UnitSchema>;\n\n// Mirrors the backend Property model with relaxed optional fields\nexport const PropertySchema = z.object({\n /**\n * Property (readable shape)\n *\n * interface Property {\n * id: number | string\n * createdAt: string // ISO\n * updatedAt: string // ISO\n * title: string\n * slug?: string | null\n * description: string\n * contactName?: string | null\n * contactEmail?: string\n * contactPhone?: string | null\n * notificationEmail?: string | null\n * logo?: unknown | null\n * leadMedia?: unknown | null\n * overviewImages?: unknown[]\n * amenityImages?: unknown[]\n * street?: string\n * city?: string\n * state?: string | null\n * zip?: string\n * country?: string\n * units?: Unit[]\n * amenities?: unknown[]\n * highlights?: unknown[]\n * externalServices?: unknown[]\n * userId?: number | string\n * user?: unknown\n * status?: string\n * floorPlans?: unknown[]\n * }\n */\n id: z.union([z.number().int(), z.string()]),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n description: z.string(),\n contact_name: z.string().nullable().optional(),\n contact_email: z.string().optional(),\n contact_phone: z.string().nullable().optional(),\n notification_email: z.string().nullable().optional(),\n logo: z.unknown().nullable().optional(),\n leadMedia: z.unknown().nullable().optional(),\n overviewImages: z.array(z.unknown()).optional(),\n amenityImages: z.array(z.unknown()).optional(),\n address_street: z.string().optional(),\n address_city: z.string().optional(),\n address_state: z.string().nullable().optional(),\n ingestionFileName: z.string().nullable().optional(),\n address_zip: z.string().optional(),\n address_country: z.string().optional(),\n units: z.array(UnitSchema).optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n externalServices: z.array(z.unknown()).optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n floorPlans: z.array(z.unknown()).optional(),\n});\nexport type Property = z.infer<typeof PropertySchema>;\n\n// Mirrors the backend User model with relaxed optional fields\n// Named ApiUserSchema to avoid conflict with local UserSchema (uuid-only)\nexport const ApiUserSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n email: z.string().email().optional(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n password: z.string().optional(),\n salt: z.string().optional(),\n role: z.string().optional(),\n Property: z.array(PropertySchema).optional(),\n Unit: z.array(UnitSchema).optional(),\n floorPlans: z.array(z.unknown()).optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n});\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\n\n// Property-related schemas used by the PropertyStore and UnifiedStore\nexport const ViewedUnitSchema = z.object({\n unitId: z.string(),\n viewedDate: z.string(),\n});\nexport type ViewedUnit = z.infer<typeof ViewedUnitSchema>;\n\nexport const TourContactDataSchema = z.object({\n timezone: z.string().optional(),\n favouriteUnits: z.array(z.coerce.string()).optional(),\n preferences: z.record(z.unknown()).optional(),\n});\nexport type TourContactData = z.infer<typeof TourContactDataSchema>;\n\nexport const UserPropertyStateSchema = z.object({\n id: z.coerce.string(),\n slug: z.string(),\n favoritedUnits: z.array(z.string()),\n tourContactedOn: z.string().nullable(),\n viewedUnits: z.array(ViewedUnitSchema),\n questionnaireResults: z.unknown().nullable().optional(),\n tourContactData: TourContactDataSchema.nullable().optional(),\n // Full property payload persisted alongside per-property state\n data: PropertySchema.optional(),\n});\nexport type UserPropertyState = z.infer<typeof UserPropertyStateSchema>;\n\nexport const PropertyStoreDataSchema = z.object({\n data: z.record(UserPropertyStateSchema),\n propertySlug: z.string().nullable(),\n propertyId: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n});\nexport type PropertyStoreData = z.infer<typeof PropertyStoreDataSchema>;\n\n// favorites\nexport const UnitFavoriteSchema = z.object({\n id: z.number().int(),\n userId: z.number().int(),\n unitId: z.number().int(),\n createdAt: z.string().datetime(),\n});\nexport type UnitFavorite = z.infer<typeof UnitFavoriteSchema>;\n\nexport const FavoritesSchema = z.object({\n // per-property favorites are stored under a KV key, so propertyId is implicit\n unitIds: z.array(z.string()),\n updatedAt: z.string().datetime(),\n});\nexport type Favorites = z.infer<typeof FavoritesSchema>;\n\n// Unified store schema (combines property + app persistent bits)\nexport const UnifiedStoreDataSchema = z.object({\n // Property-related data\n properties: z.record(UserPropertyStateSchema),\n currentPropertyId: z.string().nullable(),\n currentPropertySlug: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n\n // App-level data\n unitResults: z.array(UnitSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type UnifiedStoreData = z.infer<typeof UnifiedStoreDataSchema>;\n"],"names":["SCHEMA_VERSION","UserSchema","z.object","z.string","UserUnitDataSchema","z.boolean","UnitDataSchema","FilterOptionValueSchema","z.union","z.number","z.record","z.unknown","FilterCollectionSchema","z.array","FiltersSchema","z.null","ResultsModeEnum","z.enum","SortByEnum","QueryParamsSchema","AppStoreDataSchema","UnitSchema","z.coerce","PropertySchema","ApiUserSchema","ViewedUnitSchema","TourContactDataSchema","UserPropertyStateSchema","PropertyStoreDataSchema","UnitFavoriteSchema","FavoritesSchema","UnifiedStoreDataSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.cjs","sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const SCHEMA_VERSION = 1 as const;\n\n// Entities\nexport const UserSchema = z.object({\n uuid: z.string().uuid(),\n // stored as ISO string; include to match ensureUser()\n createdAt: z.string().datetime().optional(),\n});\nexport type User = z.infer<typeof UserSchema>;\n\n// User-specific Unit state\nexport const UserUnitDataSchema = z.object({\n isFavorite: z.boolean().optional(),\n viewedDate: z.string().optional(),\n});\n// Back-compat alias (to be deprecated): keep existing name\nexport const UnitDataSchema = UserUnitDataSchema;\nexport type UnitData = z.infer<typeof UserUnitDataSchema>;\n\n// Filters and query params\nconst FilterOptionValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.unknown()),\n]);\n\nconst FilterCollectionSchema = z.union([\n FilterOptionValueSchema,\n z.array(FilterOptionValueSchema),\n]);\n\nexport const FiltersSchema = z.object({\n date_availability: FilterCollectionSchema.nullable().optional(),\n qty_bedrooms: z.union([z.array(FilterOptionValueSchema), z.null()]).optional(),\n base_price: z.number().nullable().optional(),\n highlights: z.array(FilterOptionValueSchema).optional(),\n});\nexport type Filters = z.infer<typeof FiltersSchema>;\n\nexport const ResultsModeEnum = z.enum([\"all\", \"bestFit\", \"closestMatch\", \"favorites\", \"loading\"]);\nexport type ResultsMode = z.infer<typeof ResultsModeEnum>;\nexport const SortByEnum = z.enum([\"relevance\", \"newest\", \"cost_low_to_high\", \"cost_high_to_low\"]);\nexport type SortBy = z.infer<typeof SortByEnum>;\n\nexport const QueryParamsSchema = z.object({\n limit: z.number().default(10),\n page: z.number().default(1),\n sortBy: SortByEnum.default(\"relevance\"),\n base_price: z.number().nullable().optional(),\n date_availability: z.array(z.string()).optional(),\n qty_bedrooms: z.array(z.number()).optional(),\n highlights: z.array(z.string()).optional(),\n nearBuilding: z.array(z.string()).optional(),\n nearNeighbourhood: z.array(z.string()).optional(),\n});\nexport type QueryParams = z.infer<typeof QueryParamsSchema>;\n\n// App (standalone) persisted state\nexport const AppStoreDataSchema = z.object({\n data: z.record(UnitDataSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n propertySlug: z.string().nullable(),\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type AppStoreData = z.infer<typeof AppStoreDataSchema>;\n\n// Domain models (optional fields to mirror API shape without breaking)\n// Mirrors the backend Unit model with relaxed optional fields\nexport const UnitSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n qty_bedrooms: z.coerce.number().nullable().optional(),\n qty_bathrooms: z.coerce.number().nullable().optional(),\n base_price: z.coerce.number().nullable().optional(),\n dim_sq_ft: z.coerce.number().nullable().optional(),\n propertyId: z.union([z.number().int(), z.string()]).optional(),\n is_available: z.boolean().optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n date_availability: z.string().datetime().nullable().optional(),\n unitSetAvailableOn: z.string().datetime().nullable().optional(),\n floorPlanId: z.union([z.number().int(), z.string()]).nullable().optional(),\n // Relations and nested structures kept loose to avoid coupling\n property: z.unknown().optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n floorPlan: z.unknown().nullable().optional(),\n renderedStyle: z.array(z.unknown()).optional(),\n video: z.unknown().nullable().optional(),\n videoThumbnail: z.unknown().nullable().optional(),\n embedGif: z.unknown().nullable().optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n external_id: z.string().nullable().optional(),\n unitRenderedStyles: z.array(z.unknown()).optional(),\n});\nexport type Unit = z.infer<typeof UnitSchema>;\n\n// Mirrors the backend Property model with relaxed optional fields\nexport const PropertySchema = z.object({\n /**\n * Property (readable shape)\n *\n * interface Property {\n * id: number | string\n * createdAt: string // ISO\n * updatedAt: string // ISO\n * title: string\n * slug?: string | null\n * description: string\n * contactName?: string | null\n * contactEmail?: string\n * contactPhone?: string | null\n * notificationEmail?: string | null\n * logo?: unknown | null\n * leadMedia?: unknown | null\n * overviewImages?: unknown[]\n * amenityImages?: unknown[]\n * street?: string\n * city?: string\n * state?: string | null\n * zip?: string\n * country?: string\n * units?: Unit[]\n * amenities?: unknown[]\n * highlights?: unknown[]\n * externalServices?: unknown[]\n * userId?: number | string\n * user?: unknown\n * status?: string\n * floorPlans?: unknown[]\n * }\n */\n id: z.union([z.number().int(), z.string()]),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n description: z.string(),\n contact_name: z.string().nullable().optional(),\n contact_email: z.string().optional(),\n contact_phone: z.string().nullable().optional(),\n notification_email: z.string().nullable().optional(),\n logo: z.unknown().nullable().optional(),\n leadMedia: z.unknown().nullable().optional(),\n overviewImages: z.array(z.unknown()).optional(),\n amenityImages: z.array(z.unknown()).optional(),\n address_street: z.string().optional(),\n address_city: z.string().optional(),\n address_state: z.string().nullable().optional(),\n ingestionFileName: z.string().nullable().optional(),\n address_zip: z.string().optional(),\n address_country: z.string().optional(),\n units: z.array(UnitSchema).optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n externalServices: z.array(z.unknown()).optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n floorPlans: z.array(z.unknown()).optional(),\n});\nexport type Property = z.infer<typeof PropertySchema>;\n\n// Mirrors the backend User model with relaxed optional fields\n// Named ApiUserSchema to avoid conflict with local UserSchema (uuid-only)\nexport const ApiUserSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n email: z.string().email().optional(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n password: z.string().optional(),\n salt: z.string().optional(),\n role: z.string().optional(),\n Property: z.array(PropertySchema).optional(),\n Unit: z.array(UnitSchema).optional(),\n floorPlans: z.array(z.unknown()).optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n});\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\n\n// Property-related schemas used by the PropertyStore and UnifiedStore\nexport const ViewedUnitSchema = z.object({\n unitId: z.string(),\n viewedDate: z.string(),\n});\nexport type ViewedUnit = z.infer<typeof ViewedUnitSchema>;\n\nexport const TourContactDataSchema = z.object({\n timezone: z.string().optional(),\n favouriteUnits: z.array(z.coerce.string()).optional(),\n preferences: z.record(z.unknown()).optional(),\n});\nexport type TourContactData = z.infer<typeof TourContactDataSchema>;\n\nexport const UserPropertyStateSchema = z.object({\n id: z.coerce.string(),\n slug: z.string(),\n favoritedUnits: z.array(z.string()).optional(),\n tourContactedOn: z.string().nullable(),\n viewedUnits: z.array(ViewedUnitSchema),\n questionnaireResults: z.unknown().nullable().optional(),\n tourContactData: TourContactDataSchema.nullable().optional(),\n // Full property payload persisted alongside per-property state\n data: PropertySchema.optional(),\n});\nexport type UserPropertyState = z.infer<typeof UserPropertyStateSchema>;\n\nexport const PropertyStoreDataSchema = z.object({\n data: z.record(UserPropertyStateSchema),\n propertySlug: z.string().nullable(),\n propertyId: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n});\nexport type PropertyStoreData = z.infer<typeof PropertyStoreDataSchema>;\n\n// Unified store schema (combines property + app persistent bits)\nexport const UnifiedStoreDataSchema = z.object({\n // Property-related data\n properties: z.record(UserPropertyStateSchema),\n currentPropertyId: z.string().nullable(),\n currentPropertySlug: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n\n // App-level data\n unitResults: z.array(UnitSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type UnifiedStoreData = z.infer<typeof UnifiedStoreDataSchema>;\n"],"names":["SCHEMA_VERSION","UserSchema","z.object","z.string","UserUnitDataSchema","z.boolean","UnitDataSchema","FilterOptionValueSchema","z.union","z.number","z.record","z.unknown","FilterCollectionSchema","z.array","FiltersSchema","z.null","ResultsModeEnum","z.enum","SortByEnum","QueryParamsSchema","AppStoreDataSchema","UnitSchema","z.coerce","PropertySchema","ApiUserSchema","ViewedUnitSchema","TourContactDataSchema","UserPropertyStateSchema","PropertyStoreDataSchema","UnifiedStoreDataSchema"],"mappings":"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"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -1160,7 +1160,7 @@ export type TourContactData = z.infer<typeof TourContactDataSchema>;
|
|
|
1160
1160
|
export declare const UserPropertyStateSchema: z.ZodObject<{
|
|
1161
1161
|
id: z.ZodString;
|
|
1162
1162
|
slug: z.ZodString;
|
|
1163
|
-
favoritedUnits: z.ZodArray<z.ZodString, "many"
|
|
1163
|
+
favoritedUnits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1164
1164
|
tourContactedOn: z.ZodNullable<z.ZodString>;
|
|
1165
1165
|
viewedUnits: z.ZodArray<z.ZodObject<{
|
|
1166
1166
|
unitId: z.ZodString;
|
|
@@ -1450,7 +1450,6 @@ export declare const UserPropertyStateSchema: z.ZodObject<{
|
|
|
1450
1450
|
}, "strip", z.ZodTypeAny, {
|
|
1451
1451
|
id: string;
|
|
1452
1452
|
slug: string;
|
|
1453
|
-
favoritedUnits: string[];
|
|
1454
1453
|
tourContactedOn: string | null;
|
|
1455
1454
|
viewedUnits: {
|
|
1456
1455
|
viewedDate: string;
|
|
@@ -1514,6 +1513,7 @@ export declare const UserPropertyStateSchema: z.ZodObject<{
|
|
|
1514
1513
|
externalServices?: unknown[] | undefined;
|
|
1515
1514
|
floorPlans?: unknown[] | undefined;
|
|
1516
1515
|
} | undefined;
|
|
1516
|
+
favoritedUnits?: string[] | undefined;
|
|
1517
1517
|
questionnaireResults?: unknown;
|
|
1518
1518
|
tourContactData?: {
|
|
1519
1519
|
timezone?: string | undefined;
|
|
@@ -1523,7 +1523,6 @@ export declare const UserPropertyStateSchema: z.ZodObject<{
|
|
|
1523
1523
|
}, {
|
|
1524
1524
|
id: string;
|
|
1525
1525
|
slug: string;
|
|
1526
|
-
favoritedUnits: string[];
|
|
1527
1526
|
tourContactedOn: string | null;
|
|
1528
1527
|
viewedUnits: {
|
|
1529
1528
|
viewedDate: string;
|
|
@@ -1587,6 +1586,7 @@ export declare const UserPropertyStateSchema: z.ZodObject<{
|
|
|
1587
1586
|
externalServices?: unknown[] | undefined;
|
|
1588
1587
|
floorPlans?: unknown[] | undefined;
|
|
1589
1588
|
} | undefined;
|
|
1589
|
+
favoritedUnits?: string[] | undefined;
|
|
1590
1590
|
questionnaireResults?: unknown;
|
|
1591
1591
|
tourContactData?: {
|
|
1592
1592
|
timezone?: string | undefined;
|
|
@@ -1599,7 +1599,7 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
1599
1599
|
data: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1600
1600
|
id: z.ZodString;
|
|
1601
1601
|
slug: z.ZodString;
|
|
1602
|
-
favoritedUnits: z.ZodArray<z.ZodString, "many"
|
|
1602
|
+
favoritedUnits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1603
1603
|
tourContactedOn: z.ZodNullable<z.ZodString>;
|
|
1604
1604
|
viewedUnits: z.ZodArray<z.ZodObject<{
|
|
1605
1605
|
unitId: z.ZodString;
|
|
@@ -1889,7 +1889,6 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
1889
1889
|
}, "strip", z.ZodTypeAny, {
|
|
1890
1890
|
id: string;
|
|
1891
1891
|
slug: string;
|
|
1892
|
-
favoritedUnits: string[];
|
|
1893
1892
|
tourContactedOn: string | null;
|
|
1894
1893
|
viewedUnits: {
|
|
1895
1894
|
viewedDate: string;
|
|
@@ -1953,6 +1952,7 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
1953
1952
|
externalServices?: unknown[] | undefined;
|
|
1954
1953
|
floorPlans?: unknown[] | undefined;
|
|
1955
1954
|
} | undefined;
|
|
1955
|
+
favoritedUnits?: string[] | undefined;
|
|
1956
1956
|
questionnaireResults?: unknown;
|
|
1957
1957
|
tourContactData?: {
|
|
1958
1958
|
timezone?: string | undefined;
|
|
@@ -1962,7 +1962,6 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
1962
1962
|
}, {
|
|
1963
1963
|
id: string;
|
|
1964
1964
|
slug: string;
|
|
1965
|
-
favoritedUnits: string[];
|
|
1966
1965
|
tourContactedOn: string | null;
|
|
1967
1966
|
viewedUnits: {
|
|
1968
1967
|
viewedDate: string;
|
|
@@ -2026,6 +2025,7 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2026
2025
|
externalServices?: unknown[] | undefined;
|
|
2027
2026
|
floorPlans?: unknown[] | undefined;
|
|
2028
2027
|
} | undefined;
|
|
2028
|
+
favoritedUnits?: string[] | undefined;
|
|
2029
2029
|
questionnaireResults?: unknown;
|
|
2030
2030
|
tourContactData?: {
|
|
2031
2031
|
timezone?: string | undefined;
|
|
@@ -2040,7 +2040,6 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2040
2040
|
data: Record<string, {
|
|
2041
2041
|
id: string;
|
|
2042
2042
|
slug: string;
|
|
2043
|
-
favoritedUnits: string[];
|
|
2044
2043
|
tourContactedOn: string | null;
|
|
2045
2044
|
viewedUnits: {
|
|
2046
2045
|
viewedDate: string;
|
|
@@ -2104,6 +2103,7 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2104
2103
|
externalServices?: unknown[] | undefined;
|
|
2105
2104
|
floorPlans?: unknown[] | undefined;
|
|
2106
2105
|
} | undefined;
|
|
2106
|
+
favoritedUnits?: string[] | undefined;
|
|
2107
2107
|
questionnaireResults?: unknown;
|
|
2108
2108
|
tourContactData?: {
|
|
2109
2109
|
timezone?: string | undefined;
|
|
@@ -2118,7 +2118,6 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2118
2118
|
data: Record<string, {
|
|
2119
2119
|
id: string;
|
|
2120
2120
|
slug: string;
|
|
2121
|
-
favoritedUnits: string[];
|
|
2122
2121
|
tourContactedOn: string | null;
|
|
2123
2122
|
viewedUnits: {
|
|
2124
2123
|
viewedDate: string;
|
|
@@ -2182,6 +2181,7 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2182
2181
|
externalServices?: unknown[] | undefined;
|
|
2183
2182
|
floorPlans?: unknown[] | undefined;
|
|
2184
2183
|
} | undefined;
|
|
2184
|
+
favoritedUnits?: string[] | undefined;
|
|
2185
2185
|
questionnaireResults?: unknown;
|
|
2186
2186
|
tourContactData?: {
|
|
2187
2187
|
timezone?: string | undefined;
|
|
@@ -2194,39 +2194,11 @@ export declare const PropertyStoreDataSchema: z.ZodObject<{
|
|
|
2194
2194
|
hasPreviouslySearched: string[];
|
|
2195
2195
|
}>;
|
|
2196
2196
|
export type PropertyStoreData = z.infer<typeof PropertyStoreDataSchema>;
|
|
2197
|
-
export declare const UnitFavoriteSchema: z.ZodObject<{
|
|
2198
|
-
id: z.ZodNumber;
|
|
2199
|
-
userId: z.ZodNumber;
|
|
2200
|
-
unitId: z.ZodNumber;
|
|
2201
|
-
createdAt: z.ZodString;
|
|
2202
|
-
}, "strip", z.ZodTypeAny, {
|
|
2203
|
-
createdAt: string;
|
|
2204
|
-
id: number;
|
|
2205
|
-
userId: number;
|
|
2206
|
-
unitId: number;
|
|
2207
|
-
}, {
|
|
2208
|
-
createdAt: string;
|
|
2209
|
-
id: number;
|
|
2210
|
-
userId: number;
|
|
2211
|
-
unitId: number;
|
|
2212
|
-
}>;
|
|
2213
|
-
export type UnitFavorite = z.infer<typeof UnitFavoriteSchema>;
|
|
2214
|
-
export declare const FavoritesSchema: z.ZodObject<{
|
|
2215
|
-
unitIds: z.ZodArray<z.ZodString, "many">;
|
|
2216
|
-
updatedAt: z.ZodString;
|
|
2217
|
-
}, "strip", z.ZodTypeAny, {
|
|
2218
|
-
updatedAt: string;
|
|
2219
|
-
unitIds: string[];
|
|
2220
|
-
}, {
|
|
2221
|
-
updatedAt: string;
|
|
2222
|
-
unitIds: string[];
|
|
2223
|
-
}>;
|
|
2224
|
-
export type Favorites = z.infer<typeof FavoritesSchema>;
|
|
2225
2197
|
export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
2226
2198
|
properties: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2227
2199
|
id: z.ZodString;
|
|
2228
2200
|
slug: z.ZodString;
|
|
2229
|
-
favoritedUnits: z.ZodArray<z.ZodString, "many"
|
|
2201
|
+
favoritedUnits: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
2230
2202
|
tourContactedOn: z.ZodNullable<z.ZodString>;
|
|
2231
2203
|
viewedUnits: z.ZodArray<z.ZodObject<{
|
|
2232
2204
|
unitId: z.ZodString;
|
|
@@ -2516,7 +2488,6 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2516
2488
|
}, "strip", z.ZodTypeAny, {
|
|
2517
2489
|
id: string;
|
|
2518
2490
|
slug: string;
|
|
2519
|
-
favoritedUnits: string[];
|
|
2520
2491
|
tourContactedOn: string | null;
|
|
2521
2492
|
viewedUnits: {
|
|
2522
2493
|
viewedDate: string;
|
|
@@ -2580,6 +2551,7 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2580
2551
|
externalServices?: unknown[] | undefined;
|
|
2581
2552
|
floorPlans?: unknown[] | undefined;
|
|
2582
2553
|
} | undefined;
|
|
2554
|
+
favoritedUnits?: string[] | undefined;
|
|
2583
2555
|
questionnaireResults?: unknown;
|
|
2584
2556
|
tourContactData?: {
|
|
2585
2557
|
timezone?: string | undefined;
|
|
@@ -2589,7 +2561,6 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2589
2561
|
}, {
|
|
2590
2562
|
id: string;
|
|
2591
2563
|
slug: string;
|
|
2592
|
-
favoritedUnits: string[];
|
|
2593
2564
|
tourContactedOn: string | null;
|
|
2594
2565
|
viewedUnits: {
|
|
2595
2566
|
viewedDate: string;
|
|
@@ -2653,6 +2624,7 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2653
2624
|
externalServices?: unknown[] | undefined;
|
|
2654
2625
|
floorPlans?: unknown[] | undefined;
|
|
2655
2626
|
} | undefined;
|
|
2627
|
+
favoritedUnits?: string[] | undefined;
|
|
2656
2628
|
questionnaireResults?: unknown;
|
|
2657
2629
|
tourContactData?: {
|
|
2658
2630
|
timezone?: string | undefined;
|
|
@@ -2845,7 +2817,6 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2845
2817
|
properties: Record<string, {
|
|
2846
2818
|
id: string;
|
|
2847
2819
|
slug: string;
|
|
2848
|
-
favoritedUnits: string[];
|
|
2849
2820
|
tourContactedOn: string | null;
|
|
2850
2821
|
viewedUnits: {
|
|
2851
2822
|
viewedDate: string;
|
|
@@ -2909,6 +2880,7 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2909
2880
|
externalServices?: unknown[] | undefined;
|
|
2910
2881
|
floorPlans?: unknown[] | undefined;
|
|
2911
2882
|
} | undefined;
|
|
2883
|
+
favoritedUnits?: string[] | undefined;
|
|
2912
2884
|
questionnaireResults?: unknown;
|
|
2913
2885
|
tourContactData?: {
|
|
2914
2886
|
timezone?: string | undefined;
|
|
@@ -2978,7 +2950,6 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
2978
2950
|
properties: Record<string, {
|
|
2979
2951
|
id: string;
|
|
2980
2952
|
slug: string;
|
|
2981
|
-
favoritedUnits: string[];
|
|
2982
2953
|
tourContactedOn: string | null;
|
|
2983
2954
|
viewedUnits: {
|
|
2984
2955
|
viewedDate: string;
|
|
@@ -3042,6 +3013,7 @@ export declare const UnifiedStoreDataSchema: z.ZodObject<{
|
|
|
3042
3013
|
externalServices?: unknown[] | undefined;
|
|
3043
3014
|
floorPlans?: unknown[] | undefined;
|
|
3044
3015
|
} | undefined;
|
|
3016
|
+
favoritedUnits?: string[] | undefined;
|
|
3045
3017
|
questionnaireResults?: unknown;
|
|
3046
3018
|
tourContactData?: {
|
|
3047
3019
|
timezone?: string | undefined;
|
package/dist/schema.mjs
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
import { object as l, enum as m, string as t, boolean as u, array as
|
|
2
|
-
const
|
|
1
|
+
import { object as l, enum as m, string as t, boolean as u, array as o, number as a, union as n, null as _, record as i, unknown as e, coerce as r } from "./node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.mjs";
|
|
2
|
+
const w = 1, A = l({
|
|
3
3
|
uuid: t().uuid(),
|
|
4
4
|
// stored as ISO string; include to match ensureUser()
|
|
5
5
|
createdAt: t().datetime().optional()
|
|
6
6
|
}), g = l({
|
|
7
7
|
isFavorite: u().optional(),
|
|
8
8
|
viewedDate: t().optional()
|
|
9
|
-
}), v = g,
|
|
9
|
+
}), v = g, s = n([
|
|
10
10
|
t(),
|
|
11
11
|
a(),
|
|
12
12
|
u(),
|
|
13
|
-
i(
|
|
13
|
+
i(e())
|
|
14
14
|
]), f = n([
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
s,
|
|
16
|
+
o(s)
|
|
17
17
|
]), p = l({
|
|
18
18
|
date_availability: f.nullable().optional(),
|
|
19
|
-
qty_bedrooms: n([
|
|
19
|
+
qty_bedrooms: n([o(s), _()]).optional(),
|
|
20
20
|
base_price: a().nullable().optional(),
|
|
21
|
-
highlights:
|
|
21
|
+
highlights: o(s).optional()
|
|
22
22
|
}), b = m(["all", "bestFit", "closestMatch", "favorites", "loading"]), d = m(["relevance", "newest", "cost_low_to_high", "cost_high_to_low"]), h = l({
|
|
23
23
|
limit: a().default(10),
|
|
24
24
|
page: a().default(1),
|
|
25
25
|
sortBy: d.default("relevance"),
|
|
26
26
|
base_price: a().nullable().optional(),
|
|
27
|
-
date_availability:
|
|
28
|
-
qty_bedrooms:
|
|
29
|
-
highlights:
|
|
30
|
-
nearBuilding:
|
|
31
|
-
nearNeighbourhood:
|
|
32
|
-
}),
|
|
27
|
+
date_availability: o(t()).optional(),
|
|
28
|
+
qty_bedrooms: o(a()).optional(),
|
|
29
|
+
highlights: o(t()).optional(),
|
|
30
|
+
nearBuilding: o(t()).optional(),
|
|
31
|
+
nearNeighbourhood: o(t()).optional()
|
|
32
|
+
}), F = l({
|
|
33
33
|
data: i(v),
|
|
34
34
|
filters: p,
|
|
35
35
|
tempFilters: p,
|
|
36
36
|
apiFilters: h,
|
|
37
37
|
resultsMode: b,
|
|
38
38
|
propertySlug: t().nullable(),
|
|
39
|
-
resolvedQuestionnaireValues: i(
|
|
39
|
+
resolvedQuestionnaireValues: i(o(t())),
|
|
40
40
|
sortBy: d
|
|
41
41
|
}), c = l({
|
|
42
42
|
id: n([a().int(), t()]).optional(),
|
|
43
43
|
name: t(),
|
|
44
44
|
slug: t().nullable().optional(),
|
|
45
|
-
qty_bedrooms:
|
|
46
|
-
qty_bathrooms:
|
|
47
|
-
base_price:
|
|
48
|
-
dim_sq_ft:
|
|
45
|
+
qty_bedrooms: r.number().nullable().optional(),
|
|
46
|
+
qty_bathrooms: r.number().nullable().optional(),
|
|
47
|
+
base_price: r.number().nullable().optional(),
|
|
48
|
+
dim_sq_ft: r.number().nullable().optional(),
|
|
49
49
|
propertyId: n([a().int(), t()]).optional(),
|
|
50
50
|
is_available: u().optional(),
|
|
51
51
|
createdAt: t().datetime().optional(),
|
|
@@ -54,19 +54,19 @@ const P = 1, F = l({
|
|
|
54
54
|
unitSetAvailableOn: t().datetime().nullable().optional(),
|
|
55
55
|
floorPlanId: n([a().int(), t()]).nullable().optional(),
|
|
56
56
|
// Relations and nested structures kept loose to avoid coupling
|
|
57
|
-
property:
|
|
58
|
-
amenities: e(
|
|
59
|
-
highlights: e(
|
|
60
|
-
floorPlan:
|
|
61
|
-
renderedStyle: e(
|
|
62
|
-
video:
|
|
63
|
-
videoThumbnail:
|
|
64
|
-
embedGif:
|
|
57
|
+
property: e().optional(),
|
|
58
|
+
amenities: o(e()).optional(),
|
|
59
|
+
highlights: o(e()).optional(),
|
|
60
|
+
floorPlan: e().nullable().optional(),
|
|
61
|
+
renderedStyle: o(e()).optional(),
|
|
62
|
+
video: e().nullable().optional(),
|
|
63
|
+
videoThumbnail: e().nullable().optional(),
|
|
64
|
+
embedGif: e().nullable().optional(),
|
|
65
65
|
userId: n([a().int(), t()]).optional(),
|
|
66
|
-
user:
|
|
66
|
+
user: e().optional(),
|
|
67
67
|
status: t().optional(),
|
|
68
68
|
external_id: t().nullable().optional(),
|
|
69
|
-
unitRenderedStyles: e(
|
|
69
|
+
unitRenderedStyles: o(e()).optional()
|
|
70
70
|
}), y = l({
|
|
71
71
|
/**
|
|
72
72
|
* Property (readable shape)
|
|
@@ -111,25 +111,25 @@ const P = 1, F = l({
|
|
|
111
111
|
contact_email: t().optional(),
|
|
112
112
|
contact_phone: t().nullable().optional(),
|
|
113
113
|
notification_email: t().nullable().optional(),
|
|
114
|
-
logo:
|
|
115
|
-
leadMedia:
|
|
116
|
-
overviewImages: e(
|
|
117
|
-
amenityImages: e(
|
|
114
|
+
logo: e().nullable().optional(),
|
|
115
|
+
leadMedia: e().nullable().optional(),
|
|
116
|
+
overviewImages: o(e()).optional(),
|
|
117
|
+
amenityImages: o(e()).optional(),
|
|
118
118
|
address_street: t().optional(),
|
|
119
119
|
address_city: t().optional(),
|
|
120
120
|
address_state: t().nullable().optional(),
|
|
121
121
|
ingestionFileName: t().nullable().optional(),
|
|
122
122
|
address_zip: t().optional(),
|
|
123
123
|
address_country: t().optional(),
|
|
124
|
-
units:
|
|
125
|
-
amenities: e(
|
|
126
|
-
highlights: e(
|
|
127
|
-
externalServices: e(
|
|
124
|
+
units: o(c).optional(),
|
|
125
|
+
amenities: o(e()).optional(),
|
|
126
|
+
highlights: o(e()).optional(),
|
|
127
|
+
externalServices: o(e()).optional(),
|
|
128
128
|
userId: n([a().int(), t()]).optional(),
|
|
129
|
-
user:
|
|
129
|
+
user: e().optional(),
|
|
130
130
|
status: t().optional(),
|
|
131
|
-
floorPlans: e(
|
|
132
|
-
}),
|
|
131
|
+
floorPlans: o(e()).optional()
|
|
132
|
+
}), I = l({
|
|
133
133
|
id: n([a().int(), t()]).optional(),
|
|
134
134
|
email: t().email().optional(),
|
|
135
135
|
first_name: t().optional(),
|
|
@@ -137,76 +137,65 @@ const P = 1, F = l({
|
|
|
137
137
|
password: t().optional(),
|
|
138
138
|
salt: t().optional(),
|
|
139
139
|
role: t().optional(),
|
|
140
|
-
Property:
|
|
141
|
-
Unit:
|
|
142
|
-
floorPlans: e(
|
|
140
|
+
Property: o(y).optional(),
|
|
141
|
+
Unit: o(c).optional(),
|
|
142
|
+
floorPlans: o(e()).optional(),
|
|
143
143
|
createdAt: t().datetime().optional(),
|
|
144
144
|
updatedAt: t().datetime().optional()
|
|
145
|
-
}),
|
|
145
|
+
}), P = l({
|
|
146
146
|
unitId: t(),
|
|
147
147
|
viewedDate: t()
|
|
148
|
-
}),
|
|
148
|
+
}), U = l({
|
|
149
149
|
timezone: t().optional(),
|
|
150
|
-
favouriteUnits:
|
|
151
|
-
preferences: i(
|
|
150
|
+
favouriteUnits: o(r.string()).optional(),
|
|
151
|
+
preferences: i(e()).optional()
|
|
152
152
|
}), S = l({
|
|
153
|
-
id:
|
|
153
|
+
id: r.string(),
|
|
154
154
|
slug: t(),
|
|
155
|
-
favoritedUnits:
|
|
155
|
+
favoritedUnits: o(t()).optional(),
|
|
156
156
|
tourContactedOn: t().nullable(),
|
|
157
|
-
viewedUnits:
|
|
158
|
-
questionnaireResults:
|
|
159
|
-
tourContactData:
|
|
157
|
+
viewedUnits: o(P),
|
|
158
|
+
questionnaireResults: e().nullable().optional(),
|
|
159
|
+
tourContactData: U.nullable().optional(),
|
|
160
160
|
// Full property payload persisted alongside per-property state
|
|
161
161
|
data: y.optional()
|
|
162
162
|
}), D = l({
|
|
163
163
|
data: i(S),
|
|
164
164
|
propertySlug: t().nullable(),
|
|
165
165
|
propertyId: t().nullable(),
|
|
166
|
-
hasPreviouslySearched:
|
|
166
|
+
hasPreviouslySearched: o(t())
|
|
167
167
|
}), q = l({
|
|
168
|
-
id: a().int(),
|
|
169
|
-
userId: a().int(),
|
|
170
|
-
unitId: a().int(),
|
|
171
|
-
createdAt: t().datetime()
|
|
172
|
-
}), M = l({
|
|
173
|
-
// per-property favorites are stored under a KV key, so propertyId is implicit
|
|
174
|
-
unitIds: e(t()),
|
|
175
|
-
updatedAt: t().datetime()
|
|
176
|
-
}), B = l({
|
|
177
168
|
// Property-related data
|
|
178
169
|
properties: i(S),
|
|
179
170
|
currentPropertyId: t().nullable(),
|
|
180
171
|
currentPropertySlug: t().nullable(),
|
|
181
|
-
hasPreviouslySearched:
|
|
172
|
+
hasPreviouslySearched: o(t()),
|
|
182
173
|
// App-level data
|
|
183
|
-
unitResults:
|
|
174
|
+
unitResults: o(c),
|
|
184
175
|
filters: p,
|
|
185
176
|
tempFilters: p,
|
|
186
177
|
apiFilters: h,
|
|
187
178
|
resultsMode: b,
|
|
188
|
-
resolvedQuestionnaireValues: i(
|
|
179
|
+
resolvedQuestionnaireValues: i(o(t())),
|
|
189
180
|
sortBy: d
|
|
190
181
|
});
|
|
191
182
|
export {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
M as FavoritesSchema,
|
|
183
|
+
I as ApiUserSchema,
|
|
184
|
+
F as AppStoreDataSchema,
|
|
195
185
|
p as FiltersSchema,
|
|
196
186
|
y as PropertySchema,
|
|
197
187
|
D as PropertyStoreDataSchema,
|
|
198
188
|
h as QueryParamsSchema,
|
|
199
189
|
b as ResultsModeEnum,
|
|
200
|
-
|
|
190
|
+
w as SCHEMA_VERSION,
|
|
201
191
|
d as SortByEnum,
|
|
202
|
-
|
|
203
|
-
|
|
192
|
+
U as TourContactDataSchema,
|
|
193
|
+
q as UnifiedStoreDataSchema,
|
|
204
194
|
v as UnitDataSchema,
|
|
205
|
-
q as UnitFavoriteSchema,
|
|
206
195
|
c as UnitSchema,
|
|
207
196
|
S as UserPropertyStateSchema,
|
|
208
|
-
|
|
197
|
+
A as UserSchema,
|
|
209
198
|
g as UserUnitDataSchema,
|
|
210
|
-
|
|
199
|
+
P as ViewedUnitSchema
|
|
211
200
|
};
|
|
212
201
|
//# sourceMappingURL=schema.mjs.map
|
package/dist/schema.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.mjs","sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const SCHEMA_VERSION = 1 as const;\n\n// Entities\nexport const UserSchema = z.object({\n uuid: z.string().uuid(),\n // stored as ISO string; include to match ensureUser()\n createdAt: z.string().datetime().optional(),\n});\nexport type User = z.infer<typeof UserSchema>;\n\n// User-specific Unit state\nexport const UserUnitDataSchema = z.object({\n isFavorite: z.boolean().optional(),\n viewedDate: z.string().optional(),\n});\n// Back-compat alias (to be deprecated): keep existing name\nexport const UnitDataSchema = UserUnitDataSchema;\nexport type UnitData = z.infer<typeof UserUnitDataSchema>;\n\n// Filters and query params\nconst FilterOptionValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.unknown()),\n]);\n\nconst FilterCollectionSchema = z.union([\n FilterOptionValueSchema,\n z.array(FilterOptionValueSchema),\n]);\n\nexport const FiltersSchema = z.object({\n date_availability: FilterCollectionSchema.nullable().optional(),\n qty_bedrooms: z.union([z.array(FilterOptionValueSchema), z.null()]).optional(),\n base_price: z.number().nullable().optional(),\n highlights: z.array(FilterOptionValueSchema).optional(),\n});\nexport type Filters = z.infer<typeof FiltersSchema>;\n\nexport const ResultsModeEnum = z.enum([\"all\", \"bestFit\", \"closestMatch\", \"favorites\", \"loading\"]);\nexport type ResultsMode = z.infer<typeof ResultsModeEnum>;\nexport const SortByEnum = z.enum([\"relevance\", \"newest\", \"cost_low_to_high\", \"cost_high_to_low\"]);\nexport type SortBy = z.infer<typeof SortByEnum>;\n\nexport const QueryParamsSchema = z.object({\n limit: z.number().default(10),\n page: z.number().default(1),\n sortBy: SortByEnum.default(\"relevance\"),\n base_price: z.number().nullable().optional(),\n date_availability: z.array(z.string()).optional(),\n qty_bedrooms: z.array(z.number()).optional(),\n highlights: z.array(z.string()).optional(),\n nearBuilding: z.array(z.string()).optional(),\n nearNeighbourhood: z.array(z.string()).optional(),\n});\nexport type QueryParams = z.infer<typeof QueryParamsSchema>;\n\n// App (standalone) persisted state\nexport const AppStoreDataSchema = z.object({\n data: z.record(UnitDataSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n propertySlug: z.string().nullable(),\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type AppStoreData = z.infer<typeof AppStoreDataSchema>;\n\n// Domain models (optional fields to mirror API shape without breaking)\n// Mirrors the backend Unit model with relaxed optional fields\nexport const UnitSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n qty_bedrooms: z.coerce.number().nullable().optional(),\n qty_bathrooms: z.coerce.number().nullable().optional(),\n base_price: z.coerce.number().nullable().optional(),\n dim_sq_ft: z.coerce.number().nullable().optional(),\n propertyId: z.union([z.number().int(), z.string()]).optional(),\n is_available: z.boolean().optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n date_availability: z.string().datetime().nullable().optional(),\n unitSetAvailableOn: z.string().datetime().nullable().optional(),\n floorPlanId: z.union([z.number().int(), z.string()]).nullable().optional(),\n // Relations and nested structures kept loose to avoid coupling\n property: z.unknown().optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n floorPlan: z.unknown().nullable().optional(),\n renderedStyle: z.array(z.unknown()).optional(),\n video: z.unknown().nullable().optional(),\n videoThumbnail: z.unknown().nullable().optional(),\n embedGif: z.unknown().nullable().optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n external_id: z.string().nullable().optional(),\n unitRenderedStyles: z.array(z.unknown()).optional(),\n});\nexport type Unit = z.infer<typeof UnitSchema>;\n\n// Mirrors the backend Property model with relaxed optional fields\nexport const PropertySchema = z.object({\n /**\n * Property (readable shape)\n *\n * interface Property {\n * id: number | string\n * createdAt: string // ISO\n * updatedAt: string // ISO\n * title: string\n * slug?: string | null\n * description: string\n * contactName?: string | null\n * contactEmail?: string\n * contactPhone?: string | null\n * notificationEmail?: string | null\n * logo?: unknown | null\n * leadMedia?: unknown | null\n * overviewImages?: unknown[]\n * amenityImages?: unknown[]\n * street?: string\n * city?: string\n * state?: string | null\n * zip?: string\n * country?: string\n * units?: Unit[]\n * amenities?: unknown[]\n * highlights?: unknown[]\n * externalServices?: unknown[]\n * userId?: number | string\n * user?: unknown\n * status?: string\n * floorPlans?: unknown[]\n * }\n */\n id: z.union([z.number().int(), z.string()]),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n description: z.string(),\n contact_name: z.string().nullable().optional(),\n contact_email: z.string().optional(),\n contact_phone: z.string().nullable().optional(),\n notification_email: z.string().nullable().optional(),\n logo: z.unknown().nullable().optional(),\n leadMedia: z.unknown().nullable().optional(),\n overviewImages: z.array(z.unknown()).optional(),\n amenityImages: z.array(z.unknown()).optional(),\n address_street: z.string().optional(),\n address_city: z.string().optional(),\n address_state: z.string().nullable().optional(),\n ingestionFileName: z.string().nullable().optional(),\n address_zip: z.string().optional(),\n address_country: z.string().optional(),\n units: z.array(UnitSchema).optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n externalServices: z.array(z.unknown()).optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n floorPlans: z.array(z.unknown()).optional(),\n});\nexport type Property = z.infer<typeof PropertySchema>;\n\n// Mirrors the backend User model with relaxed optional fields\n// Named ApiUserSchema to avoid conflict with local UserSchema (uuid-only)\nexport const ApiUserSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n email: z.string().email().optional(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n password: z.string().optional(),\n salt: z.string().optional(),\n role: z.string().optional(),\n Property: z.array(PropertySchema).optional(),\n Unit: z.array(UnitSchema).optional(),\n floorPlans: z.array(z.unknown()).optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n});\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\n\n// Property-related schemas used by the PropertyStore and UnifiedStore\nexport const ViewedUnitSchema = z.object({\n unitId: z.string(),\n viewedDate: z.string(),\n});\nexport type ViewedUnit = z.infer<typeof ViewedUnitSchema>;\n\nexport const TourContactDataSchema = z.object({\n timezone: z.string().optional(),\n favouriteUnits: z.array(z.coerce.string()).optional(),\n preferences: z.record(z.unknown()).optional(),\n});\nexport type TourContactData = z.infer<typeof TourContactDataSchema>;\n\nexport const UserPropertyStateSchema = z.object({\n id: z.coerce.string(),\n slug: z.string(),\n favoritedUnits: z.array(z.string()),\n tourContactedOn: z.string().nullable(),\n viewedUnits: z.array(ViewedUnitSchema),\n questionnaireResults: z.unknown().nullable().optional(),\n tourContactData: TourContactDataSchema.nullable().optional(),\n // Full property payload persisted alongside per-property state\n data: PropertySchema.optional(),\n});\nexport type UserPropertyState = z.infer<typeof UserPropertyStateSchema>;\n\nexport const PropertyStoreDataSchema = z.object({\n data: z.record(UserPropertyStateSchema),\n propertySlug: z.string().nullable(),\n propertyId: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n});\nexport type PropertyStoreData = z.infer<typeof PropertyStoreDataSchema>;\n\n// favorites\nexport const UnitFavoriteSchema = z.object({\n id: z.number().int(),\n userId: z.number().int(),\n unitId: z.number().int(),\n createdAt: z.string().datetime(),\n});\nexport type UnitFavorite = z.infer<typeof UnitFavoriteSchema>;\n\nexport const FavoritesSchema = z.object({\n // per-property favorites are stored under a KV key, so propertyId is implicit\n unitIds: z.array(z.string()),\n updatedAt: z.string().datetime(),\n});\nexport type Favorites = z.infer<typeof FavoritesSchema>;\n\n// Unified store schema (combines property + app persistent bits)\nexport const UnifiedStoreDataSchema = z.object({\n // Property-related data\n properties: z.record(UserPropertyStateSchema),\n currentPropertyId: z.string().nullable(),\n currentPropertySlug: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n\n // App-level data\n unitResults: z.array(UnitSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type UnifiedStoreData = z.infer<typeof UnifiedStoreDataSchema>;\n"],"names":["SCHEMA_VERSION","UserSchema","z.object","z.string","UserUnitDataSchema","z.boolean","UnitDataSchema","FilterOptionValueSchema","z.union","z.number","z.record","z.unknown","FilterCollectionSchema","z.array","FiltersSchema","z.null","ResultsModeEnum","z.enum","SortByEnum","QueryParamsSchema","AppStoreDataSchema","UnitSchema","z.coerce","PropertySchema","ApiUserSchema","ViewedUnitSchema","TourContactDataSchema","UserPropertyStateSchema","PropertyStoreDataSchema","UnitFavoriteSchema","FavoritesSchema","UnifiedStoreDataSchema"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.mjs","sources":["../src/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const SCHEMA_VERSION = 1 as const;\n\n// Entities\nexport const UserSchema = z.object({\n uuid: z.string().uuid(),\n // stored as ISO string; include to match ensureUser()\n createdAt: z.string().datetime().optional(),\n});\nexport type User = z.infer<typeof UserSchema>;\n\n// User-specific Unit state\nexport const UserUnitDataSchema = z.object({\n isFavorite: z.boolean().optional(),\n viewedDate: z.string().optional(),\n});\n// Back-compat alias (to be deprecated): keep existing name\nexport const UnitDataSchema = UserUnitDataSchema;\nexport type UnitData = z.infer<typeof UserUnitDataSchema>;\n\n// Filters and query params\nconst FilterOptionValueSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.record(z.unknown()),\n]);\n\nconst FilterCollectionSchema = z.union([\n FilterOptionValueSchema,\n z.array(FilterOptionValueSchema),\n]);\n\nexport const FiltersSchema = z.object({\n date_availability: FilterCollectionSchema.nullable().optional(),\n qty_bedrooms: z.union([z.array(FilterOptionValueSchema), z.null()]).optional(),\n base_price: z.number().nullable().optional(),\n highlights: z.array(FilterOptionValueSchema).optional(),\n});\nexport type Filters = z.infer<typeof FiltersSchema>;\n\nexport const ResultsModeEnum = z.enum([\"all\", \"bestFit\", \"closestMatch\", \"favorites\", \"loading\"]);\nexport type ResultsMode = z.infer<typeof ResultsModeEnum>;\nexport const SortByEnum = z.enum([\"relevance\", \"newest\", \"cost_low_to_high\", \"cost_high_to_low\"]);\nexport type SortBy = z.infer<typeof SortByEnum>;\n\nexport const QueryParamsSchema = z.object({\n limit: z.number().default(10),\n page: z.number().default(1),\n sortBy: SortByEnum.default(\"relevance\"),\n base_price: z.number().nullable().optional(),\n date_availability: z.array(z.string()).optional(),\n qty_bedrooms: z.array(z.number()).optional(),\n highlights: z.array(z.string()).optional(),\n nearBuilding: z.array(z.string()).optional(),\n nearNeighbourhood: z.array(z.string()).optional(),\n});\nexport type QueryParams = z.infer<typeof QueryParamsSchema>;\n\n// App (standalone) persisted state\nexport const AppStoreDataSchema = z.object({\n data: z.record(UnitDataSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n propertySlug: z.string().nullable(),\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type AppStoreData = z.infer<typeof AppStoreDataSchema>;\n\n// Domain models (optional fields to mirror API shape without breaking)\n// Mirrors the backend Unit model with relaxed optional fields\nexport const UnitSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n qty_bedrooms: z.coerce.number().nullable().optional(),\n qty_bathrooms: z.coerce.number().nullable().optional(),\n base_price: z.coerce.number().nullable().optional(),\n dim_sq_ft: z.coerce.number().nullable().optional(),\n propertyId: z.union([z.number().int(), z.string()]).optional(),\n is_available: z.boolean().optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n date_availability: z.string().datetime().nullable().optional(),\n unitSetAvailableOn: z.string().datetime().nullable().optional(),\n floorPlanId: z.union([z.number().int(), z.string()]).nullable().optional(),\n // Relations and nested structures kept loose to avoid coupling\n property: z.unknown().optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n floorPlan: z.unknown().nullable().optional(),\n renderedStyle: z.array(z.unknown()).optional(),\n video: z.unknown().nullable().optional(),\n videoThumbnail: z.unknown().nullable().optional(),\n embedGif: z.unknown().nullable().optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n external_id: z.string().nullable().optional(),\n unitRenderedStyles: z.array(z.unknown()).optional(),\n});\nexport type Unit = z.infer<typeof UnitSchema>;\n\n// Mirrors the backend Property model with relaxed optional fields\nexport const PropertySchema = z.object({\n /**\n * Property (readable shape)\n *\n * interface Property {\n * id: number | string\n * createdAt: string // ISO\n * updatedAt: string // ISO\n * title: string\n * slug?: string | null\n * description: string\n * contactName?: string | null\n * contactEmail?: string\n * contactPhone?: string | null\n * notificationEmail?: string | null\n * logo?: unknown | null\n * leadMedia?: unknown | null\n * overviewImages?: unknown[]\n * amenityImages?: unknown[]\n * street?: string\n * city?: string\n * state?: string | null\n * zip?: string\n * country?: string\n * units?: Unit[]\n * amenities?: unknown[]\n * highlights?: unknown[]\n * externalServices?: unknown[]\n * userId?: number | string\n * user?: unknown\n * status?: string\n * floorPlans?: unknown[]\n * }\n */\n id: z.union([z.number().int(), z.string()]),\n createdAt: z.string().datetime(),\n updatedAt: z.string().datetime(),\n name: z.string(),\n slug: z.string().nullable().optional(),\n description: z.string(),\n contact_name: z.string().nullable().optional(),\n contact_email: z.string().optional(),\n contact_phone: z.string().nullable().optional(),\n notification_email: z.string().nullable().optional(),\n logo: z.unknown().nullable().optional(),\n leadMedia: z.unknown().nullable().optional(),\n overviewImages: z.array(z.unknown()).optional(),\n amenityImages: z.array(z.unknown()).optional(),\n address_street: z.string().optional(),\n address_city: z.string().optional(),\n address_state: z.string().nullable().optional(),\n ingestionFileName: z.string().nullable().optional(),\n address_zip: z.string().optional(),\n address_country: z.string().optional(),\n units: z.array(UnitSchema).optional(),\n amenities: z.array(z.unknown()).optional(),\n highlights: z.array(z.unknown()).optional(),\n externalServices: z.array(z.unknown()).optional(),\n userId: z.union([z.number().int(), z.string()]).optional(),\n user: z.unknown().optional(),\n status: z.string().optional(),\n floorPlans: z.array(z.unknown()).optional(),\n});\nexport type Property = z.infer<typeof PropertySchema>;\n\n// Mirrors the backend User model with relaxed optional fields\n// Named ApiUserSchema to avoid conflict with local UserSchema (uuid-only)\nexport const ApiUserSchema = z.object({\n id: z.union([z.number().int(), z.string()]).optional(),\n email: z.string().email().optional(),\n first_name: z.string().optional(),\n last_name: z.string().optional(),\n password: z.string().optional(),\n salt: z.string().optional(),\n role: z.string().optional(),\n Property: z.array(PropertySchema).optional(),\n Unit: z.array(UnitSchema).optional(),\n floorPlans: z.array(z.unknown()).optional(),\n createdAt: z.string().datetime().optional(),\n updatedAt: z.string().datetime().optional(),\n});\nexport type ApiUser = z.infer<typeof ApiUserSchema>;\n\n// Property-related schemas used by the PropertyStore and UnifiedStore\nexport const ViewedUnitSchema = z.object({\n unitId: z.string(),\n viewedDate: z.string(),\n});\nexport type ViewedUnit = z.infer<typeof ViewedUnitSchema>;\n\nexport const TourContactDataSchema = z.object({\n timezone: z.string().optional(),\n favouriteUnits: z.array(z.coerce.string()).optional(),\n preferences: z.record(z.unknown()).optional(),\n});\nexport type TourContactData = z.infer<typeof TourContactDataSchema>;\n\nexport const UserPropertyStateSchema = z.object({\n id: z.coerce.string(),\n slug: z.string(),\n favoritedUnits: z.array(z.string()).optional(),\n tourContactedOn: z.string().nullable(),\n viewedUnits: z.array(ViewedUnitSchema),\n questionnaireResults: z.unknown().nullable().optional(),\n tourContactData: TourContactDataSchema.nullable().optional(),\n // Full property payload persisted alongside per-property state\n data: PropertySchema.optional(),\n});\nexport type UserPropertyState = z.infer<typeof UserPropertyStateSchema>;\n\nexport const PropertyStoreDataSchema = z.object({\n data: z.record(UserPropertyStateSchema),\n propertySlug: z.string().nullable(),\n propertyId: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n});\nexport type PropertyStoreData = z.infer<typeof PropertyStoreDataSchema>;\n\n// Unified store schema (combines property + app persistent bits)\nexport const UnifiedStoreDataSchema = z.object({\n // Property-related data\n properties: z.record(UserPropertyStateSchema),\n currentPropertyId: z.string().nullable(),\n currentPropertySlug: z.string().nullable(),\n hasPreviouslySearched: z.array(z.string()),\n\n // App-level data\n unitResults: z.array(UnitSchema),\n filters: FiltersSchema,\n tempFilters: FiltersSchema,\n apiFilters: QueryParamsSchema,\n resultsMode: ResultsModeEnum,\n resolvedQuestionnaireValues: z.record(z.array(z.string())),\n sortBy: SortByEnum,\n});\nexport type UnifiedStoreData = z.infer<typeof UnifiedStoreDataSchema>;\n"],"names":["SCHEMA_VERSION","UserSchema","z.object","z.string","UserUnitDataSchema","z.boolean","UnitDataSchema","FilterOptionValueSchema","z.union","z.number","z.record","z.unknown","FilterCollectionSchema","z.array","FiltersSchema","z.null","ResultsModeEnum","z.enum","SortByEnum","QueryParamsSchema","AppStoreDataSchema","UnitSchema","z.coerce","PropertySchema","ApiUserSchema","ViewedUnitSchema","TourContactDataSchema","UserPropertyStateSchema","PropertyStoreDataSchema","UnifiedStoreDataSchema"],"mappings":";AAEO,MAAMA,IAAiB,GAGjBC,IAAaC,EAAS;AAAA,EACjC,MAAMC,EAAE,EAAS,KAAA;AAAA;AAAA,EAEjB,WAAWA,EAAE,EAAS,SAAA,EAAW,SAAA;AACnC,CAAC,GAIYC,IAAqBF,EAAS;AAAA,EACzC,YAAYG,EAAE,EAAU,SAAA;AAAA,EACxB,YAAYF,EAAE,EAAS,SAAA;AACzB,CAAC,GAEYG,IAAiBF,GAIxBG,IAA0BC,EAAQ;AAAA,EACtCL,EAAE;AAAA,EACFM,EAAE;AAAA,EACFJ,EAAE;AAAA,EACFK,EAASC,EAAE,CAAS;AACtB,CAAC,GAEKC,IAAyBJ,EAAQ;AAAA,EACrCD;AAAA,EACAM,EAAQN,CAAuB;AACjC,CAAC,GAEYO,IAAgBZ,EAAS;AAAA,EACpC,mBAAmBU,EAAuB,SAAA,EAAW,SAAA;AAAA,EACrD,cAAcJ,EAAQ,CAACK,EAAQN,CAAuB,GAAGQ,EAAE,CAAM,CAAC,EAAE,SAAA;AAAA,EACpE,YAAYN,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EAClC,YAAYI,EAAQN,CAAuB,EAAE,SAAA;AAC/C,CAAC,GAGYS,IAAkBC,EAAO,CAAC,OAAO,WAAW,gBAAgB,aAAa,SAAS,CAAC,GAEnFC,IAAaD,EAAO,CAAC,aAAa,UAAU,oBAAoB,kBAAkB,CAAC,GAGnFE,IAAoBjB,EAAS;AAAA,EACxC,OAAOO,EAAE,EAAS,QAAQ,EAAE;AAAA,EAC5B,MAAMA,EAAE,EAAS,QAAQ,CAAC;AAAA,EAC1B,QAAQS,EAAW,QAAQ,WAAW;AAAA,EACtC,YAAYT,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EAClC,mBAAmBI,EAAQV,EAAE,CAAQ,EAAE,SAAA;AAAA,EACvC,cAAcU,EAAQJ,EAAE,CAAQ,EAAE,SAAA;AAAA,EAClC,YAAYI,EAAQV,EAAE,CAAQ,EAAE,SAAA;AAAA,EAChC,cAAcU,EAAQV,EAAE,CAAQ,EAAE,SAAA;AAAA,EAClC,mBAAmBU,EAAQV,EAAE,CAAQ,EAAE,SAAA;AACzC,CAAC,GAIYiB,IAAqBlB,EAAS;AAAA,EACzC,MAAMQ,EAASJ,CAAc;AAAA,EAC7B,SAASQ;AAAA,EACT,aAAaA;AAAA,EACb,YAAYK;AAAA,EACZ,aAAaH;AAAA,EACb,cAAcb,EAAE,EAAS,SAAA;AAAA,EACzB,6BAA6BO,EAASG,EAAQV,EAAE,CAAQ,CAAC;AAAA,EACzD,QAAQe;AACV,CAAC,GAKYG,IAAanB,EAAS;AAAA,EACjC,IAAIM,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EAC5C,MAAMA,EAAE;AAAA,EACR,MAAMA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EAC5B,cAAcmB,EAAS,SAAS,SAAA,EAAW,SAAA;AAAA,EAC3C,eAAeA,EAAS,SAAS,SAAA,EAAW,SAAA;AAAA,EAC5C,YAAYA,EAAS,SAAS,SAAA,EAAW,SAAA;AAAA,EACzC,WAAWA,EAAS,SAAS,SAAA,EAAW,SAAA;AAAA,EACxC,YAAYd,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EACpD,cAAcE,EAAE,EAAU,SAAA;AAAA,EAC1B,WAAWF,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACjC,WAAWA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACjC,mBAAmBA,EAAE,EAAS,WAAW,SAAA,EAAW,SAAA;AAAA,EACpD,oBAAoBA,EAAE,EAAS,WAAW,SAAA,EAAW,SAAA;AAAA,EACrD,aAAaK,EAAQ,CAACC,IAAW,IAAA,GAAON,GAAU,CAAC,EAAE,SAAA,EAAW,SAAA;AAAA;AAAA,EAEhE,UAAUQ,EAAE,EAAU,SAAA;AAAA,EACtB,WAAWE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EAChC,YAAYE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACjC,WAAWA,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EAClC,eAAeE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACpC,OAAOA,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EAC9B,gBAAgBA,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EACvC,UAAUA,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EACjC,QAAQH,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EAChD,MAAMQ,EAAE,EAAU,SAAA;AAAA,EAClB,QAAQR,EAAE,EAAS,SAAA;AAAA,EACnB,aAAaA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACnC,oBAAoBU,EAAQF,EAAE,CAAS,EAAE,SAAA;AAC3C,CAAC,GAIYY,IAAiBrB,EAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkCrC,IAAIM,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC;AAAA,EAC1C,WAAWA,EAAE,EAAS,SAAA;AAAA,EACtB,WAAWA,EAAE,EAAS,SAAA;AAAA,EACtB,MAAMA,EAAE;AAAA,EACR,MAAMA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EAC5B,aAAaA,EAAE;AAAA,EACf,cAAcA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACpC,eAAeA,EAAE,EAAS,SAAA;AAAA,EAC1B,eAAeA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACrC,oBAAoBA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EAC1C,MAAMQ,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EAC7B,WAAWA,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EAClC,gBAAgBE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACrC,eAAeE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACpC,gBAAgBR,EAAE,EAAS,SAAA;AAAA,EAC3B,cAAcA,EAAE,EAAS,SAAA;AAAA,EACzB,eAAeA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACrC,mBAAmBA,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACzC,aAAaA,EAAE,EAAS,SAAA;AAAA,EACxB,iBAAiBA,EAAE,EAAS,SAAA;AAAA,EAC5B,OAAOU,EAAQQ,CAAU,EAAE,SAAA;AAAA,EAC3B,WAAWR,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EAChC,YAAYE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACjC,kBAAkBE,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACvC,QAAQH,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EAChD,MAAMQ,EAAE,EAAU,SAAA;AAAA,EAClB,QAAQR,EAAE,EAAS,SAAA;AAAA,EACnB,YAAYU,EAAQF,EAAE,CAAS,EAAE,SAAA;AACnC,CAAC,GAKYa,IAAgBtB,EAAS;AAAA,EACpC,IAAIM,EAAQ,CAACC,EAAE,EAAS,IAAA,GAAON,EAAE,CAAQ,CAAC,EAAE,SAAA;AAAA,EAC5C,OAAOA,EAAE,EAAS,MAAA,EAAQ,SAAA;AAAA,EAC1B,YAAYA,EAAE,EAAS,SAAA;AAAA,EACvB,WAAWA,EAAE,EAAS,SAAA;AAAA,EACtB,UAAUA,EAAE,EAAS,SAAA;AAAA,EACrB,MAAMA,EAAE,EAAS,SAAA;AAAA,EACjB,MAAMA,EAAE,EAAS,SAAA;AAAA,EACjB,UAAUU,EAAQU,CAAc,EAAE,SAAA;AAAA,EAClC,MAAMV,EAAQQ,CAAU,EAAE,SAAA;AAAA,EAC1B,YAAYR,EAAQF,EAAE,CAAS,EAAE,SAAA;AAAA,EACjC,WAAWR,EAAE,EAAS,SAAA,EAAW,SAAA;AAAA,EACjC,WAAWA,EAAE,EAAS,SAAA,EAAW,SAAA;AACnC,CAAC,GAIYsB,IAAmBvB,EAAS;AAAA,EACvC,QAAQC,EAAE;AAAA,EACV,YAAYA,EAAE;AAChB,CAAC,GAGYuB,IAAwBxB,EAAS;AAAA,EAC5C,UAAUC,EAAE,EAAS,SAAA;AAAA,EACrB,gBAAgBU,EAAQS,EAAS,OAAA,CAAQ,EAAE,SAAA;AAAA,EAC3C,aAAaZ,EAASC,EAAE,CAAS,EAAE,SAAA;AACrC,CAAC,GAGYgB,IAA0BzB,EAAS;AAAA,EAC9C,IAAIoB,EAAS,OAAA;AAAA,EACb,MAAMnB,EAAE;AAAA,EACR,gBAAgBU,EAAQV,EAAE,CAAQ,EAAE,SAAA;AAAA,EACpC,iBAAiBA,EAAE,EAAS,SAAA;AAAA,EAC5B,aAAaU,EAAQY,CAAgB;AAAA,EACrC,sBAAsBd,EAAE,EAAU,SAAA,EAAW,SAAA;AAAA,EAC7C,iBAAiBe,EAAsB,SAAA,EAAW,SAAA;AAAA;AAAA,EAElD,MAAMH,EAAe,SAAA;AACvB,CAAC,GAGYK,IAA0B1B,EAAS;AAAA,EAC9C,MAAMQ,EAASiB,CAAuB;AAAA,EACtC,cAAcxB,EAAE,EAAS,SAAA;AAAA,EACzB,YAAYA,EAAE,EAAS,SAAA;AAAA,EACvB,uBAAuBU,EAAQV,GAAU;AAC3C,CAAC,GAIY0B,IAAyB3B,EAAS;AAAA;AAAA,EAE7C,YAAYQ,EAASiB,CAAuB;AAAA,EAC5C,mBAAmBxB,EAAE,EAAS,SAAA;AAAA,EAC9B,qBAAqBA,EAAE,EAAS,SAAA;AAAA,EAChC,uBAAuBU,EAAQV,GAAU;AAAA;AAAA,EAGzC,aAAaU,EAAQQ,CAAU;AAAA,EAC/B,SAASP;AAAA,EACT,aAAaA;AAAA,EACb,YAAYK;AAAA,EACZ,aAAaH;AAAA,EACb,6BAA6BN,EAASG,EAAQV,EAAE,CAAQ,CAAC;AAAA,EACzD,QAAQe;AACV,CAAC;"}
|