@voyantjs/hospitality 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/routes-accommodation.d.ts +1196 -0
  2. package/dist/routes-accommodation.d.ts.map +1 -0
  3. package/dist/routes-accommodation.js +194 -0
  4. package/dist/routes-inventory.d.ts +981 -0
  5. package/dist/routes-inventory.d.ts.map +1 -0
  6. package/dist/routes-inventory.js +159 -0
  7. package/dist/routes-operations.d.ts +2349 -0
  8. package/dist/routes-operations.d.ts.map +1 -0
  9. package/dist/routes-operations.js +6 -0
  10. package/dist/routes-shared.d.ts +11 -0
  11. package/dist/routes-shared.d.ts.map +1 -0
  12. package/dist/routes-shared.js +3 -0
  13. package/dist/routes-stays.d.ts +1371 -0
  14. package/dist/routes-stays.d.ts.map +1 -0
  15. package/dist/routes-stays.js +211 -0
  16. package/dist/routes.d.ts +520 -527
  17. package/dist/routes.d.ts.map +1 -1
  18. package/dist/routes.js +4 -551
  19. package/dist/schema-bookings.d.ts +1476 -0
  20. package/dist/schema-bookings.d.ts.map +1 -0
  21. package/dist/schema-bookings.js +156 -0
  22. package/dist/schema-inventory.d.ts +1593 -0
  23. package/dist/schema-inventory.d.ts.map +1 -0
  24. package/dist/schema-inventory.js +154 -0
  25. package/dist/schema-operations.d.ts +1076 -0
  26. package/dist/schema-operations.d.ts.map +1 -0
  27. package/dist/schema-operations.js +114 -0
  28. package/dist/schema-pricing.d.ts +1065 -0
  29. package/dist/schema-pricing.d.ts.map +1 -0
  30. package/dist/schema-pricing.js +107 -0
  31. package/dist/schema-relations.d.ts +118 -0
  32. package/dist/schema-relations.d.ts.map +1 -0
  33. package/dist/schema-relations.js +199 -0
  34. package/dist/schema-shared.d.ts +13 -0
  35. package/dist/schema-shared.d.ts.map +1 -0
  36. package/dist/schema-shared.js +73 -0
  37. package/dist/schema.d.ts +6 -5335
  38. package/dist/schema.d.ts.map +1 -1
  39. package/dist/schema.js +6 -779
  40. package/dist/service.d.ts +37 -37
  41. package/dist/validation-accommodation.d.ts +438 -0
  42. package/dist/validation-accommodation.d.ts.map +1 -0
  43. package/dist/validation-accommodation.js +151 -0
  44. package/dist/validation-operations.d.ts +860 -0
  45. package/dist/validation-operations.d.ts.map +1 -0
  46. package/dist/validation-operations.js +293 -0
  47. package/dist/validation-shared.d.ts +94 -0
  48. package/dist/validation-shared.d.ts.map +1 -0
  49. package/dist/validation-shared.js +79 -0
  50. package/dist/validation.d.ts +3 -1377
  51. package/dist/validation.d.ts.map +1 -1
  52. package/dist/validation.js +3 -520
  53. package/package.json +6 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-pricing.d.ts","sourceRoot":"","sources":["../src/schema-pricing.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCrB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BzB,CAAA;AAED,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BtC,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCzB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,YAAY,CAAA;AACpD,MAAM,MAAM,WAAW,GAAG,OAAO,SAAS,CAAC,YAAY,CAAA;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,YAAY,CAAA;AAC7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,YAAY,CAAA;AAChE,MAAM,MAAM,yBAAyB,GAAG,OAAO,0BAA0B,CAAC,YAAY,CAAA;AACtF,MAAM,MAAM,4BAA4B,GAAG,OAAO,0BAA0B,CAAC,YAAY,CAAA;AACzF,MAAM,MAAM,YAAY,GAAG,OAAO,aAAa,CAAC,YAAY,CAAA;AAC5D,MAAM,MAAM,eAAe,GAAG,OAAO,aAAa,CAAC,YAAY,CAAA"}
@@ -0,0 +1,107 @@
1
+ import { typeId, typeIdRef } from "@voyantjs/db/lib/typeid-column";
2
+ import { properties } from "@voyantjs/facilities/schema";
3
+ import { boolean, char, date, index, integer, jsonb, pgTable, text, timestamp, uniqueIndex, } from "drizzle-orm/pg-core";
4
+ import { ratePlans, roomTypes } from "./schema-inventory";
5
+ export const stayRules = pgTable("stay_rules", {
6
+ id: typeId("stay_rules"),
7
+ propertyId: typeIdRef("property_id")
8
+ .notNull()
9
+ .references(() => properties.id, { onDelete: "cascade" }),
10
+ ratePlanId: typeIdRef("rate_plan_id").references(() => ratePlans.id, { onDelete: "cascade" }),
11
+ roomTypeId: typeIdRef("room_type_id").references(() => roomTypes.id, { onDelete: "cascade" }),
12
+ validFrom: date("valid_from"),
13
+ validTo: date("valid_to"),
14
+ minNights: integer("min_nights"),
15
+ maxNights: integer("max_nights"),
16
+ minAdvanceDays: integer("min_advance_days"),
17
+ maxAdvanceDays: integer("max_advance_days"),
18
+ closedToArrival: boolean("closed_to_arrival").notNull().default(false),
19
+ closedToDeparture: boolean("closed_to_departure").notNull().default(false),
20
+ arrivalWeekdays: jsonb("arrival_weekdays").$type(),
21
+ departureWeekdays: jsonb("departure_weekdays").$type(),
22
+ releaseDays: integer("release_days"),
23
+ active: boolean("active").notNull().default(true),
24
+ priority: integer("priority").notNull().default(0),
25
+ notes: text("notes"),
26
+ metadata: jsonb("metadata").$type(),
27
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
28
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
29
+ }, (table) => [
30
+ index("idx_stay_rules_property").on(table.propertyId),
31
+ index("idx_stay_rules_rate_plan").on(table.ratePlanId),
32
+ index("idx_stay_rules_room_type").on(table.roomTypeId),
33
+ index("idx_stay_rules_active").on(table.active),
34
+ ]);
35
+ export const roomInventory = pgTable("room_inventory", {
36
+ id: typeId("room_inventory"),
37
+ propertyId: typeIdRef("property_id")
38
+ .notNull()
39
+ .references(() => properties.id, { onDelete: "cascade" }),
40
+ roomTypeId: typeIdRef("room_type_id")
41
+ .notNull()
42
+ .references(() => roomTypes.id, { onDelete: "cascade" }),
43
+ date: date("date").notNull(),
44
+ totalUnits: integer("total_units").notNull().default(0),
45
+ availableUnits: integer("available_units").notNull().default(0),
46
+ heldUnits: integer("held_units").notNull().default(0),
47
+ soldUnits: integer("sold_units").notNull().default(0),
48
+ outOfOrderUnits: integer("out_of_order_units").notNull().default(0),
49
+ overbookLimit: integer("overbook_limit"),
50
+ stopSell: boolean("stop_sell").notNull().default(false),
51
+ notes: text("notes"),
52
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
53
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
54
+ }, (table) => [
55
+ index("idx_room_inventory_property").on(table.propertyId),
56
+ index("idx_room_inventory_room_type").on(table.roomTypeId),
57
+ index("idx_room_inventory_date").on(table.date),
58
+ uniqueIndex("uidx_room_inventory_room_type_date").on(table.roomTypeId, table.date),
59
+ ]);
60
+ export const ratePlanInventoryOverrides = pgTable("rate_plan_inventory_overrides", {
61
+ id: typeId("rate_plan_inventory_overrides"),
62
+ ratePlanId: typeIdRef("rate_plan_id")
63
+ .notNull()
64
+ .references(() => ratePlans.id, { onDelete: "cascade" }),
65
+ roomTypeId: typeIdRef("room_type_id")
66
+ .notNull()
67
+ .references(() => roomTypes.id, { onDelete: "cascade" }),
68
+ date: date("date").notNull(),
69
+ stopSell: boolean("stop_sell").notNull().default(false),
70
+ closedToArrival: boolean("closed_to_arrival").notNull().default(false),
71
+ closedToDeparture: boolean("closed_to_departure").notNull().default(false),
72
+ minNightsOverride: integer("min_nights_override"),
73
+ maxNightsOverride: integer("max_nights_override"),
74
+ notes: text("notes"),
75
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
76
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
77
+ }, (table) => [
78
+ index("idx_rate_plan_inventory_overrides_rate_plan").on(table.ratePlanId),
79
+ index("idx_rate_plan_inventory_overrides_room_type").on(table.roomTypeId),
80
+ index("idx_rate_plan_inventory_overrides_date").on(table.date),
81
+ uniqueIndex("uidx_rate_plan_inventory_overrides_unique").on(table.ratePlanId, table.roomTypeId, table.date),
82
+ ]);
83
+ export const roomTypeRates = pgTable("room_type_rates", {
84
+ id: typeId("room_type_rates"),
85
+ ratePlanId: typeIdRef("rate_plan_id")
86
+ .notNull()
87
+ .references(() => ratePlans.id, { onDelete: "cascade" }),
88
+ roomTypeId: typeIdRef("room_type_id")
89
+ .notNull()
90
+ .references(() => roomTypes.id, { onDelete: "cascade" }),
91
+ priceScheduleId: text("price_schedule_id"),
92
+ currencyCode: char("currency_code", { length: 3 }).notNull(),
93
+ baseAmountCents: integer("base_amount_cents"),
94
+ extraAdultAmountCents: integer("extra_adult_amount_cents"),
95
+ extraChildAmountCents: integer("extra_child_amount_cents"),
96
+ extraInfantAmountCents: integer("extra_infant_amount_cents"),
97
+ active: boolean("active").notNull().default(true),
98
+ notes: text("notes"),
99
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
100
+ updatedAt: timestamp("updated_at", { withTimezone: true }).notNull().defaultNow(),
101
+ }, (table) => [
102
+ index("idx_room_type_rates_rate_plan").on(table.ratePlanId),
103
+ index("idx_room_type_rates_room_type").on(table.roomTypeId),
104
+ index("idx_room_type_rates_price_schedule").on(table.priceScheduleId),
105
+ index("idx_room_type_rates_active").on(table.active),
106
+ uniqueIndex("uidx_room_type_rates_plan_room_schedule").on(table.ratePlanId, table.roomTypeId, table.priceScheduleId),
107
+ ]);
@@ -0,0 +1,118 @@
1
+ export declare const roomTypesRelations: import("drizzle-orm").Relations<"room_types", {
2
+ property: import("drizzle-orm").One<"properties", true>;
3
+ bedConfigs: import("drizzle-orm").Many<"room_type_bed_configs">;
4
+ roomUnits: import("drizzle-orm").Many<"room_units">;
5
+ ratePlanRoomTypes: import("drizzle-orm").Many<"rate_plan_room_types">;
6
+ roomTypeRates: import("drizzle-orm").Many<"room_type_rates">;
7
+ stayRules: import("drizzle-orm").Many<"stay_rules">;
8
+ inventory: import("drizzle-orm").Many<"room_inventory">;
9
+ inventoryOverrides: import("drizzle-orm").Many<"rate_plan_inventory_overrides">;
10
+ stayBookingItems: import("drizzle-orm").Many<"stay_booking_items">;
11
+ }>;
12
+ export declare const roomTypeBedConfigsRelations: import("drizzle-orm").Relations<"room_type_bed_configs", {
13
+ roomType: import("drizzle-orm").One<"room_types", true>;
14
+ }>;
15
+ export declare const roomUnitsRelations: import("drizzle-orm").Relations<"room_units", {
16
+ property: import("drizzle-orm").One<"properties", true>;
17
+ roomType: import("drizzle-orm").One<"room_types", true>;
18
+ stayBookingItems: import("drizzle-orm").Many<"stay_booking_items">;
19
+ roomBlocks: import("drizzle-orm").Many<"room_blocks">;
20
+ statusEvents: import("drizzle-orm").Many<"room_unit_status_events">;
21
+ maintenanceBlocks: import("drizzle-orm").Many<"maintenance_blocks">;
22
+ housekeepingTasks: import("drizzle-orm").Many<"housekeeping_tasks">;
23
+ stayOperations: import("drizzle-orm").Many<"stay_operations">;
24
+ stayCheckpoints: import("drizzle-orm").Many<"stay_checkpoints">;
25
+ }>;
26
+ export declare const mealPlansRelations: import("drizzle-orm").Relations<"meal_plans", {
27
+ property: import("drizzle-orm").One<"properties", true>;
28
+ ratePlans: import("drizzle-orm").Many<"rate_plans">;
29
+ stayBookingItems: import("drizzle-orm").Many<"stay_booking_items">;
30
+ }>;
31
+ export declare const ratePlansRelations: import("drizzle-orm").Relations<"rate_plans", {
32
+ property: import("drizzle-orm").One<"properties", true>;
33
+ mealPlan: import("drizzle-orm").One<"meal_plans", false>;
34
+ roomTypes: import("drizzle-orm").Many<"rate_plan_room_types">;
35
+ roomTypeRates: import("drizzle-orm").Many<"room_type_rates">;
36
+ stayRules: import("drizzle-orm").Many<"stay_rules">;
37
+ inventoryOverrides: import("drizzle-orm").Many<"rate_plan_inventory_overrides">;
38
+ stayBookingItems: import("drizzle-orm").Many<"stay_booking_items">;
39
+ }>;
40
+ export declare const ratePlanRoomTypesRelations: import("drizzle-orm").Relations<"rate_plan_room_types", {
41
+ ratePlan: import("drizzle-orm").One<"rate_plans", true>;
42
+ roomType: import("drizzle-orm").One<"room_types", true>;
43
+ }>;
44
+ export declare const stayRulesRelations: import("drizzle-orm").Relations<"stay_rules", {
45
+ property: import("drizzle-orm").One<"properties", true>;
46
+ ratePlan: import("drizzle-orm").One<"rate_plans", false>;
47
+ roomType: import("drizzle-orm").One<"room_types", false>;
48
+ }>;
49
+ export declare const roomInventoryRelations: import("drizzle-orm").Relations<"room_inventory", {
50
+ property: import("drizzle-orm").One<"properties", true>;
51
+ roomType: import("drizzle-orm").One<"room_types", true>;
52
+ }>;
53
+ export declare const ratePlanInventoryOverridesRelations: import("drizzle-orm").Relations<"rate_plan_inventory_overrides", {
54
+ ratePlan: import("drizzle-orm").One<"rate_plans", true>;
55
+ roomType: import("drizzle-orm").One<"room_types", true>;
56
+ }>;
57
+ export declare const roomTypeRatesRelations: import("drizzle-orm").Relations<"room_type_rates", {
58
+ ratePlan: import("drizzle-orm").One<"rate_plans", true>;
59
+ roomType: import("drizzle-orm").One<"room_types", true>;
60
+ }>;
61
+ export declare const stayBookingItemsRelations: import("drizzle-orm").Relations<"stay_booking_items", {
62
+ bookingItem: import("drizzle-orm").One<"booking_items", true>;
63
+ property: import("drizzle-orm").One<"properties", true>;
64
+ roomType: import("drizzle-orm").One<"room_types", true>;
65
+ roomUnit: import("drizzle-orm").One<"room_units", false>;
66
+ ratePlan: import("drizzle-orm").One<"rate_plans", true>;
67
+ mealPlan: import("drizzle-orm").One<"meal_plans", false>;
68
+ dailyRates: import("drizzle-orm").Many<"stay_daily_rates">;
69
+ housekeepingTasks: import("drizzle-orm").Many<"housekeeping_tasks">;
70
+ operations: import("drizzle-orm").Many<"stay_operations">;
71
+ }>;
72
+ export declare const stayDailyRatesRelations: import("drizzle-orm").Relations<"stay_daily_rates", {
73
+ stayBookingItem: import("drizzle-orm").One<"stay_booking_items", true>;
74
+ }>;
75
+ export declare const roomBlocksRelations: import("drizzle-orm").Relations<"room_blocks", {
76
+ property: import("drizzle-orm").One<"properties", true>;
77
+ roomType: import("drizzle-orm").One<"room_types", false>;
78
+ roomUnit: import("drizzle-orm").One<"room_units", false>;
79
+ }>;
80
+ export declare const roomUnitStatusEventsRelations: import("drizzle-orm").Relations<"room_unit_status_events", {
81
+ roomUnit: import("drizzle-orm").One<"room_units", true>;
82
+ }>;
83
+ export declare const maintenanceBlocksRelations: import("drizzle-orm").Relations<"maintenance_blocks", {
84
+ property: import("drizzle-orm").One<"properties", true>;
85
+ roomType: import("drizzle-orm").One<"room_types", false>;
86
+ roomUnit: import("drizzle-orm").One<"room_units", false>;
87
+ }>;
88
+ export declare const housekeepingTasksRelations: import("drizzle-orm").Relations<"housekeeping_tasks", {
89
+ property: import("drizzle-orm").One<"properties", true>;
90
+ roomUnit: import("drizzle-orm").One<"room_units", true>;
91
+ stayBookingItem: import("drizzle-orm").One<"stay_booking_items", false>;
92
+ }>;
93
+ export declare const stayOperationsRelations: import("drizzle-orm").Relations<"stay_operations", {
94
+ stayBookingItem: import("drizzle-orm").One<"stay_booking_items", true>;
95
+ property: import("drizzle-orm").One<"properties", true>;
96
+ roomUnit: import("drizzle-orm").One<"room_units", false>;
97
+ checkpoints: import("drizzle-orm").Many<"stay_checkpoints">;
98
+ servicePosts: import("drizzle-orm").Many<"stay_service_posts">;
99
+ folios: import("drizzle-orm").Many<"stay_folios">;
100
+ }>;
101
+ export declare const stayCheckpointsRelations: import("drizzle-orm").Relations<"stay_checkpoints", {
102
+ stayOperation: import("drizzle-orm").One<"stay_operations", true>;
103
+ roomUnit: import("drizzle-orm").One<"room_units", false>;
104
+ }>;
105
+ export declare const stayServicePostsRelations: import("drizzle-orm").Relations<"stay_service_posts", {
106
+ stayOperation: import("drizzle-orm").One<"stay_operations", true>;
107
+ bookingItem: import("drizzle-orm").One<"booking_items", false>;
108
+ folioLines: import("drizzle-orm").Many<"stay_folio_lines">;
109
+ }>;
110
+ export declare const stayFoliosRelations: import("drizzle-orm").Relations<"stay_folios", {
111
+ stayOperation: import("drizzle-orm").One<"stay_operations", true>;
112
+ lines: import("drizzle-orm").Many<"stay_folio_lines">;
113
+ }>;
114
+ export declare const stayFolioLinesRelations: import("drizzle-orm").Relations<"stay_folio_lines", {
115
+ stayFolio: import("drizzle-orm").One<"stay_folios", true>;
116
+ servicePost: import("drizzle-orm").One<"stay_service_posts", false>;
117
+ }>;
118
+ //# sourceMappingURL=schema-relations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-relations.d.ts","sourceRoot":"","sources":["../src/schema-relations.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,kBAAkB;;;;;;;;;;EAU5B,CAAA;AAEH,eAAO,MAAM,2BAA2B;;EAKrC,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;EAU5B,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;EAI5B,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;EAQ5B,CAAA;AAEH,eAAO,MAAM,0BAA0B;;;EASpC,CAAA;AAEH,eAAO,MAAM,kBAAkB;;;;EAI5B,CAAA;AAEH,eAAO,MAAM,sBAAsB;;;EAGhC,CAAA;AAEH,eAAO,MAAM,mCAAmC;;;EAY/C,CAAA;AAED,eAAO,MAAM,sBAAsB;;;EAShC,CAAA;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;EAgBnC,CAAA;AAEH,eAAO,MAAM,uBAAuB;;EAKjC,CAAA;AAEH,eAAO,MAAM,mBAAmB;;;;EAI7B,CAAA;AAEH,eAAO,MAAM,6BAA6B;;EAKvC,CAAA;AAEH,eAAO,MAAM,0BAA0B;;;;EAapC,CAAA;AAEH,eAAO,MAAM,0BAA0B;;;;EAapC,CAAA;AAEH,eAAO,MAAM,uBAAuB;;;;;;;EAajC,CAAA;AAEH,eAAO,MAAM,wBAAwB;;;EAMlC,CAAA;AAEH,eAAO,MAAM,yBAAyB;;;;EAUnC,CAAA;AAEH,eAAO,MAAM,mBAAmB;;;EAM7B,CAAA;AAEH,eAAO,MAAM,uBAAuB;;;EASjC,CAAA"}
@@ -0,0 +1,199 @@
1
+ import { bookingItems } from "@voyantjs/bookings/schema";
2
+ import { properties } from "@voyantjs/facilities/schema";
3
+ import { relations } from "drizzle-orm";
4
+ import { housekeepingTasks, maintenanceBlocks, roomBlocks, roomUnitStatusEvents, stayBookingItems, stayDailyRates, } from "./schema-bookings";
5
+ import { mealPlans, ratePlanRoomTypes, ratePlans, roomTypeBedConfigs, roomTypes, roomUnits, } from "./schema-inventory";
6
+ import { stayCheckpoints, stayFolioLines, stayFolios, stayOperations, stayServicePosts, } from "./schema-operations";
7
+ import { ratePlanInventoryOverrides, roomInventory, roomTypeRates, stayRules, } from "./schema-pricing";
8
+ export const roomTypesRelations = relations(roomTypes, ({ one, many }) => ({
9
+ property: one(properties, { fields: [roomTypes.propertyId], references: [properties.id] }),
10
+ bedConfigs: many(roomTypeBedConfigs),
11
+ roomUnits: many(roomUnits),
12
+ ratePlanRoomTypes: many(ratePlanRoomTypes),
13
+ roomTypeRates: many(roomTypeRates),
14
+ stayRules: many(stayRules),
15
+ inventory: many(roomInventory),
16
+ inventoryOverrides: many(ratePlanInventoryOverrides),
17
+ stayBookingItems: many(stayBookingItems),
18
+ }));
19
+ export const roomTypeBedConfigsRelations = relations(roomTypeBedConfigs, ({ one }) => ({
20
+ roomType: one(roomTypes, {
21
+ fields: [roomTypeBedConfigs.roomTypeId],
22
+ references: [roomTypes.id],
23
+ }),
24
+ }));
25
+ export const roomUnitsRelations = relations(roomUnits, ({ one, many }) => ({
26
+ property: one(properties, { fields: [roomUnits.propertyId], references: [properties.id] }),
27
+ roomType: one(roomTypes, { fields: [roomUnits.roomTypeId], references: [roomTypes.id] }),
28
+ stayBookingItems: many(stayBookingItems),
29
+ roomBlocks: many(roomBlocks),
30
+ statusEvents: many(roomUnitStatusEvents),
31
+ maintenanceBlocks: many(maintenanceBlocks),
32
+ housekeepingTasks: many(housekeepingTasks),
33
+ stayOperations: many(stayOperations),
34
+ stayCheckpoints: many(stayCheckpoints),
35
+ }));
36
+ export const mealPlansRelations = relations(mealPlans, ({ one, many }) => ({
37
+ property: one(properties, { fields: [mealPlans.propertyId], references: [properties.id] }),
38
+ ratePlans: many(ratePlans),
39
+ stayBookingItems: many(stayBookingItems),
40
+ }));
41
+ export const ratePlansRelations = relations(ratePlans, ({ one, many }) => ({
42
+ property: one(properties, { fields: [ratePlans.propertyId], references: [properties.id] }),
43
+ mealPlan: one(mealPlans, { fields: [ratePlans.mealPlanId], references: [mealPlans.id] }),
44
+ roomTypes: many(ratePlanRoomTypes),
45
+ roomTypeRates: many(roomTypeRates),
46
+ stayRules: many(stayRules),
47
+ inventoryOverrides: many(ratePlanInventoryOverrides),
48
+ stayBookingItems: many(stayBookingItems),
49
+ }));
50
+ export const ratePlanRoomTypesRelations = relations(ratePlanRoomTypes, ({ one }) => ({
51
+ ratePlan: one(ratePlans, {
52
+ fields: [ratePlanRoomTypes.ratePlanId],
53
+ references: [ratePlans.id],
54
+ }),
55
+ roomType: one(roomTypes, {
56
+ fields: [ratePlanRoomTypes.roomTypeId],
57
+ references: [roomTypes.id],
58
+ }),
59
+ }));
60
+ export const stayRulesRelations = relations(stayRules, ({ one }) => ({
61
+ property: one(properties, { fields: [stayRules.propertyId], references: [properties.id] }),
62
+ ratePlan: one(ratePlans, { fields: [stayRules.ratePlanId], references: [ratePlans.id] }),
63
+ roomType: one(roomTypes, { fields: [stayRules.roomTypeId], references: [roomTypes.id] }),
64
+ }));
65
+ export const roomInventoryRelations = relations(roomInventory, ({ one }) => ({
66
+ property: one(properties, { fields: [roomInventory.propertyId], references: [properties.id] }),
67
+ roomType: one(roomTypes, { fields: [roomInventory.roomTypeId], references: [roomTypes.id] }),
68
+ }));
69
+ export const ratePlanInventoryOverridesRelations = relations(ratePlanInventoryOverrides, ({ one }) => ({
70
+ ratePlan: one(ratePlans, {
71
+ fields: [ratePlanInventoryOverrides.ratePlanId],
72
+ references: [ratePlans.id],
73
+ }),
74
+ roomType: one(roomTypes, {
75
+ fields: [ratePlanInventoryOverrides.roomTypeId],
76
+ references: [roomTypes.id],
77
+ }),
78
+ }));
79
+ export const roomTypeRatesRelations = relations(roomTypeRates, ({ one }) => ({
80
+ ratePlan: one(ratePlans, {
81
+ fields: [roomTypeRates.ratePlanId],
82
+ references: [ratePlans.id],
83
+ }),
84
+ roomType: one(roomTypes, {
85
+ fields: [roomTypeRates.roomTypeId],
86
+ references: [roomTypes.id],
87
+ }),
88
+ }));
89
+ export const stayBookingItemsRelations = relations(stayBookingItems, ({ one, many }) => ({
90
+ bookingItem: one(bookingItems, {
91
+ fields: [stayBookingItems.bookingItemId],
92
+ references: [bookingItems.id],
93
+ }),
94
+ property: one(properties, {
95
+ fields: [stayBookingItems.propertyId],
96
+ references: [properties.id],
97
+ }),
98
+ roomType: one(roomTypes, { fields: [stayBookingItems.roomTypeId], references: [roomTypes.id] }),
99
+ roomUnit: one(roomUnits, { fields: [stayBookingItems.roomUnitId], references: [roomUnits.id] }),
100
+ ratePlan: one(ratePlans, { fields: [stayBookingItems.ratePlanId], references: [ratePlans.id] }),
101
+ mealPlan: one(mealPlans, { fields: [stayBookingItems.mealPlanId], references: [mealPlans.id] }),
102
+ dailyRates: many(stayDailyRates),
103
+ housekeepingTasks: many(housekeepingTasks),
104
+ operations: many(stayOperations),
105
+ }));
106
+ export const stayDailyRatesRelations = relations(stayDailyRates, ({ one }) => ({
107
+ stayBookingItem: one(stayBookingItems, {
108
+ fields: [stayDailyRates.stayBookingItemId],
109
+ references: [stayBookingItems.id],
110
+ }),
111
+ }));
112
+ export const roomBlocksRelations = relations(roomBlocks, ({ one }) => ({
113
+ property: one(properties, { fields: [roomBlocks.propertyId], references: [properties.id] }),
114
+ roomType: one(roomTypes, { fields: [roomBlocks.roomTypeId], references: [roomTypes.id] }),
115
+ roomUnit: one(roomUnits, { fields: [roomBlocks.roomUnitId], references: [roomUnits.id] }),
116
+ }));
117
+ export const roomUnitStatusEventsRelations = relations(roomUnitStatusEvents, ({ one }) => ({
118
+ roomUnit: one(roomUnits, {
119
+ fields: [roomUnitStatusEvents.roomUnitId],
120
+ references: [roomUnits.id],
121
+ }),
122
+ }));
123
+ export const maintenanceBlocksRelations = relations(maintenanceBlocks, ({ one }) => ({
124
+ property: one(properties, {
125
+ fields: [maintenanceBlocks.propertyId],
126
+ references: [properties.id],
127
+ }),
128
+ roomType: one(roomTypes, {
129
+ fields: [maintenanceBlocks.roomTypeId],
130
+ references: [roomTypes.id],
131
+ }),
132
+ roomUnit: one(roomUnits, {
133
+ fields: [maintenanceBlocks.roomUnitId],
134
+ references: [roomUnits.id],
135
+ }),
136
+ }));
137
+ export const housekeepingTasksRelations = relations(housekeepingTasks, ({ one }) => ({
138
+ property: one(properties, {
139
+ fields: [housekeepingTasks.propertyId],
140
+ references: [properties.id],
141
+ }),
142
+ roomUnit: one(roomUnits, {
143
+ fields: [housekeepingTasks.roomUnitId],
144
+ references: [roomUnits.id],
145
+ }),
146
+ stayBookingItem: one(stayBookingItems, {
147
+ fields: [housekeepingTasks.stayBookingItemId],
148
+ references: [stayBookingItems.id],
149
+ }),
150
+ }));
151
+ export const stayOperationsRelations = relations(stayOperations, ({ one, many }) => ({
152
+ stayBookingItem: one(stayBookingItems, {
153
+ fields: [stayOperations.stayBookingItemId],
154
+ references: [stayBookingItems.id],
155
+ }),
156
+ property: one(properties, {
157
+ fields: [stayOperations.propertyId],
158
+ references: [properties.id],
159
+ }),
160
+ roomUnit: one(roomUnits, { fields: [stayOperations.roomUnitId], references: [roomUnits.id] }),
161
+ checkpoints: many(stayCheckpoints),
162
+ servicePosts: many(stayServicePosts),
163
+ folios: many(stayFolios),
164
+ }));
165
+ export const stayCheckpointsRelations = relations(stayCheckpoints, ({ one }) => ({
166
+ stayOperation: one(stayOperations, {
167
+ fields: [stayCheckpoints.stayOperationId],
168
+ references: [stayOperations.id],
169
+ }),
170
+ roomUnit: one(roomUnits, { fields: [stayCheckpoints.roomUnitId], references: [roomUnits.id] }),
171
+ }));
172
+ export const stayServicePostsRelations = relations(stayServicePosts, ({ one, many }) => ({
173
+ stayOperation: one(stayOperations, {
174
+ fields: [stayServicePosts.stayOperationId],
175
+ references: [stayOperations.id],
176
+ }),
177
+ bookingItem: one(bookingItems, {
178
+ fields: [stayServicePosts.bookingItemId],
179
+ references: [bookingItems.id],
180
+ }),
181
+ folioLines: many(stayFolioLines),
182
+ }));
183
+ export const stayFoliosRelations = relations(stayFolios, ({ one, many }) => ({
184
+ stayOperation: one(stayOperations, {
185
+ fields: [stayFolios.stayOperationId],
186
+ references: [stayOperations.id],
187
+ }),
188
+ lines: many(stayFolioLines),
189
+ }));
190
+ export const stayFolioLinesRelations = relations(stayFolioLines, ({ one }) => ({
191
+ stayFolio: one(stayFolios, {
192
+ fields: [stayFolioLines.stayFolioId],
193
+ references: [stayFolios.id],
194
+ }),
195
+ servicePost: one(stayServicePosts, {
196
+ fields: [stayFolioLines.servicePostId],
197
+ references: [stayServicePosts.id],
198
+ }),
199
+ }));
@@ -0,0 +1,13 @@
1
+ export declare const hospitalityInventoryModeEnum: import("drizzle-orm/pg-core").PgEnum<["pooled", "serialized", "virtual"]>;
2
+ export declare const roomUnitStatusEnum: import("drizzle-orm/pg-core").PgEnum<["active", "inactive", "out_of_order", "archived"]>;
3
+ export declare const ratePlanChargeFrequencyEnum: import("drizzle-orm/pg-core").PgEnum<["per_night", "per_stay", "per_person_per_night", "per_person_per_stay"]>;
4
+ export declare const hospitalityGuaranteeModeEnum: import("drizzle-orm/pg-core").PgEnum<["none", "card_hold", "deposit", "full_prepay", "on_request"]>;
5
+ export declare const stayBookingItemStatusEnum: import("drizzle-orm/pg-core").PgEnum<["reserved", "checked_in", "checked_out", "cancelled", "no_show"]>;
6
+ export declare const hospitalityRoomBlockStatusEnum: import("drizzle-orm/pg-core").PgEnum<["draft", "held", "confirmed", "released", "cancelled"]>;
7
+ export declare const hospitalityHousekeepingTaskStatusEnum: import("drizzle-orm/pg-core").PgEnum<["open", "in_progress", "completed", "cancelled"]>;
8
+ export declare const hospitalityMaintenanceBlockStatusEnum: import("drizzle-orm/pg-core").PgEnum<["open", "in_progress", "resolved", "cancelled"]>;
9
+ export declare const stayOperationStatusEnum: import("drizzle-orm/pg-core").PgEnum<["reserved", "expected_arrival", "checked_in", "checked_out", "no_show", "cancelled"]>;
10
+ export declare const stayCheckpointTypeEnum: import("drizzle-orm/pg-core").PgEnum<["arrival", "room_assigned", "check_in", "room_move", "charge_posted", "check_out", "no_show", "note"]>;
11
+ export declare const stayServicePostKindEnum: import("drizzle-orm/pg-core").PgEnum<["lodging", "meal", "minibar", "fee", "adjustment", "other"]>;
12
+ export declare const stayFolioStatusEnum: import("drizzle-orm/pg-core").PgEnum<["open", "closed", "transferred", "void"]>;
13
+ //# sourceMappingURL=schema-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-shared.d.ts","sourceRoot":"","sources":["../src/schema-shared.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,2EAIvC,CAAA;AAEF,eAAO,MAAM,kBAAkB,0FAK7B,CAAA;AAEF,eAAO,MAAM,2BAA2B,gHAKtC,CAAA;AAEF,eAAO,MAAM,4BAA4B,qGAMvC,CAAA;AAEF,eAAO,MAAM,yBAAyB,yGAMpC,CAAA;AAEF,eAAO,MAAM,8BAA8B,+FAMzC,CAAA;AAEF,eAAO,MAAM,qCAAqC,yFAGjD,CAAA;AAED,eAAO,MAAM,qCAAqC,wFAGjD,CAAA;AAED,eAAO,MAAM,uBAAuB,6HAOlC,CAAA;AAEF,eAAO,MAAM,sBAAsB,8IASjC,CAAA;AAEF,eAAO,MAAM,uBAAuB,oGAOlC,CAAA;AAEF,eAAO,MAAM,mBAAmB,iFAK9B,CAAA"}
@@ -0,0 +1,73 @@
1
+ import { pgEnum } from "drizzle-orm/pg-core";
2
+ export const hospitalityInventoryModeEnum = pgEnum("hospitality_inventory_mode", [
3
+ "pooled",
4
+ "serialized",
5
+ "virtual",
6
+ ]);
7
+ export const roomUnitStatusEnum = pgEnum("room_unit_status", [
8
+ "active",
9
+ "inactive",
10
+ "out_of_order",
11
+ "archived",
12
+ ]);
13
+ export const ratePlanChargeFrequencyEnum = pgEnum("rate_plan_charge_frequency", [
14
+ "per_night",
15
+ "per_stay",
16
+ "per_person_per_night",
17
+ "per_person_per_stay",
18
+ ]);
19
+ export const hospitalityGuaranteeModeEnum = pgEnum("hospitality_guarantee_mode", [
20
+ "none",
21
+ "card_hold",
22
+ "deposit",
23
+ "full_prepay",
24
+ "on_request",
25
+ ]);
26
+ export const stayBookingItemStatusEnum = pgEnum("stay_booking_item_status", [
27
+ "reserved",
28
+ "checked_in",
29
+ "checked_out",
30
+ "cancelled",
31
+ "no_show",
32
+ ]);
33
+ export const hospitalityRoomBlockStatusEnum = pgEnum("hospitality_room_block_status", [
34
+ "draft",
35
+ "held",
36
+ "confirmed",
37
+ "released",
38
+ "cancelled",
39
+ ]);
40
+ export const hospitalityHousekeepingTaskStatusEnum = pgEnum("hospitality_housekeeping_task_status", ["open", "in_progress", "completed", "cancelled"]);
41
+ export const hospitalityMaintenanceBlockStatusEnum = pgEnum("hospitality_maintenance_block_status", ["open", "in_progress", "resolved", "cancelled"]);
42
+ export const stayOperationStatusEnum = pgEnum("stay_operation_status", [
43
+ "reserved",
44
+ "expected_arrival",
45
+ "checked_in",
46
+ "checked_out",
47
+ "no_show",
48
+ "cancelled",
49
+ ]);
50
+ export const stayCheckpointTypeEnum = pgEnum("stay_checkpoint_type", [
51
+ "arrival",
52
+ "room_assigned",
53
+ "check_in",
54
+ "room_move",
55
+ "charge_posted",
56
+ "check_out",
57
+ "no_show",
58
+ "note",
59
+ ]);
60
+ export const stayServicePostKindEnum = pgEnum("stay_service_post_kind", [
61
+ "lodging",
62
+ "meal",
63
+ "minibar",
64
+ "fee",
65
+ "adjustment",
66
+ "other",
67
+ ]);
68
+ export const stayFolioStatusEnum = pgEnum("stay_folio_status", [
69
+ "open",
70
+ "closed",
71
+ "transferred",
72
+ "void",
73
+ ]);