@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.
- package/dist/routes-accommodation.d.ts +1196 -0
- package/dist/routes-accommodation.d.ts.map +1 -0
- package/dist/routes-accommodation.js +194 -0
- package/dist/routes-inventory.d.ts +981 -0
- package/dist/routes-inventory.d.ts.map +1 -0
- package/dist/routes-inventory.js +159 -0
- package/dist/routes-operations.d.ts +2349 -0
- package/dist/routes-operations.d.ts.map +1 -0
- package/dist/routes-operations.js +6 -0
- package/dist/routes-shared.d.ts +11 -0
- package/dist/routes-shared.d.ts.map +1 -0
- package/dist/routes-shared.js +3 -0
- package/dist/routes-stays.d.ts +1371 -0
- package/dist/routes-stays.d.ts.map +1 -0
- package/dist/routes-stays.js +211 -0
- package/dist/routes.d.ts +520 -527
- package/dist/routes.d.ts.map +1 -1
- package/dist/routes.js +4 -551
- package/dist/schema-bookings.d.ts +1476 -0
- package/dist/schema-bookings.d.ts.map +1 -0
- package/dist/schema-bookings.js +156 -0
- package/dist/schema-inventory.d.ts +1593 -0
- package/dist/schema-inventory.d.ts.map +1 -0
- package/dist/schema-inventory.js +154 -0
- package/dist/schema-operations.d.ts +1076 -0
- package/dist/schema-operations.d.ts.map +1 -0
- package/dist/schema-operations.js +114 -0
- package/dist/schema-pricing.d.ts +1065 -0
- package/dist/schema-pricing.d.ts.map +1 -0
- package/dist/schema-pricing.js +107 -0
- package/dist/schema-relations.d.ts +118 -0
- package/dist/schema-relations.d.ts.map +1 -0
- package/dist/schema-relations.js +199 -0
- package/dist/schema-shared.d.ts +13 -0
- package/dist/schema-shared.d.ts.map +1 -0
- package/dist/schema-shared.js +73 -0
- package/dist/schema.d.ts +6 -5335
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +6 -779
- package/dist/service.d.ts +37 -37
- package/dist/validation-accommodation.d.ts +438 -0
- package/dist/validation-accommodation.d.ts.map +1 -0
- package/dist/validation-accommodation.js +151 -0
- package/dist/validation-operations.d.ts +860 -0
- package/dist/validation-operations.d.ts.map +1 -0
- package/dist/validation-operations.js +293 -0
- package/dist/validation-shared.d.ts +94 -0
- package/dist/validation-shared.d.ts.map +1 -0
- package/dist/validation-shared.js +79 -0
- package/dist/validation.d.ts +3 -1377
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +3 -520
- 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
|
+
]);
|