feat(housekeeping): deliver hotel operations
CI / check (pull_request) Failing after 36s
CI / release (pull_request) Skipped
CI / deploy (pull_request) Skipped

This commit is contained in:
Simo committed 2026-08-30 14:34:26 +02:00
1 parent bfc5bd78a1
commit abc707cfb2
43 files changed
+3749 -615

No files matched your search

@@ -6,6 +6,7 @@ import { renderToStaticMarkup } from "react-dom/server";
import { describe, expect, it } from "vitest";
import { CONTENT_ROUTE_IDS } from "../domains/content/routes";
import { ECONOMY_ROUTE_IDS } from "../domains/economy/routes";
import { HOTEL_PRIMARY_ROUTE_IDS } from "../domains/hotel/routes";
import { PEOPLE_ROUTE_IDS } from "../domains/people/routes";
import { SYSTEM_ROUTE_IDS } from "../domains/system/routes";
import { HOUSEKEEPING_MANIFESTS } from "../manifests";
@@ -698,11 +699,134 @@ const approvedRuntimeImports = new Map<string, ReadonlySet<string>>([
"src/features/housekeeping/domains/system/routes",
]),
],
[
"src/features/housekeeping/domains/hotel/commands/hotel-commands.ts",
new Set([
"src/features/housekeeping/domains/hotel/commands/radio-commands",
"src/features/housekeeping/domains/hotel/commands/room-commands",
"src/features/housekeeping/domains/hotel/services/mutations",
]),
],
[
"src/features/housekeeping/domains/hotel/manifest.ts",
new Set(["src/features/housekeeping/domains/hotel/routes"]),
],
[
"src/features/housekeeping/domains/hotel/pages/hotel-command-form.tsx",
new Set(["src/actions/housekeeping-command"]),
],
[
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame.tsx",
new Set([
"src/features/housekeeping/domains/hotel/queries/rooms",
"src/features/housekeeping/domains/hotel/routes",
]),
],
[
"src/features/housekeeping/domains/hotel/pages/navigation.tsx",
new Set([
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame",
"src/features/housekeeping/domains/hotel/queries/rooms",
]),
],
[
"src/features/housekeeping/domains/hotel/pages/radio.tsx",
new Set([
"src/features/housekeeping/domains/hotel/pages/hotel-command-form",
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame",
"src/features/housekeeping/domains/hotel/queries/rooms",
]),
],
[
"src/features/housekeeping/domains/hotel/pages/room-detail.tsx",
new Set([
"src/features/housekeeping/domains/hotel/pages/hotel-command-form",
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame",
"src/features/housekeeping/domains/hotel/queries/rooms",
]),
],
[
"src/features/housekeeping/domains/hotel/pages/room-furni.tsx",
new Set([
"src/features/housekeeping/domains/hotel/pages/hotel-command-form",
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame",
"src/features/housekeeping/domains/hotel/queries/rooms",
]),
],
[
"src/features/housekeeping/domains/hotel/pages/rooms.tsx",
new Set([
"src/features/housekeeping/domains/hotel/pages/hotel-command-form",
"src/features/housekeeping/domains/hotel/pages/hotel-page-frame",
"src/features/housekeeping/domains/hotel/queries/rooms",
]),
],
[
"src/features/housekeeping/domains/hotel/queries/hotel-production.ts",
new Set([
"src/features/housekeeping/domains/hotel/queries/rooms",
"src/features/housekeeping/domains/hotel/routes",
"src/lib/db",
"drizzle-orm",
]),
],
[
"src/features/housekeeping/domains/hotel/queries/radio.ts",
new Set([
"src/features/housekeeping/domains/hotel/queries/hotel-production",
"src/features/housekeeping/domains/hotel/queries/rooms",
"src/lib/services/radio",
]),
],
[
"src/features/housekeeping/domains/hotel/queries/rooms.ts",
new Set([
"src/features/housekeeping/domains/hotel/queries/hotel-production",
"src/features/housekeeping/domains/hotel/queries/radio",
"src/features/housekeeping/domains/hotel/routes",
]),
],
[
"src/features/housekeeping/domains/hotel/route-handlers.ts",
new Set([
"src/features/housekeeping/domains/hotel/pages/navigation",
"src/features/housekeeping/domains/hotel/pages/radio",
"src/features/housekeeping/domains/hotel/pages/room-detail",
"src/features/housekeeping/domains/hotel/pages/room-furni",
"src/features/housekeeping/domains/hotel/pages/rooms",
"src/features/housekeeping/domains/hotel/routes",
]),
],
[
"src/features/housekeeping/domains/hotel/services/mutations-production.ts",
new Set([
"src/features/housekeeping/domains/hotel/services/mutations",
"src/features/housekeeping/domains/hotel/services/mutations-runtime",
"src/lib/db",
"src/lib/services/audit",
]),
],
[
"src/features/housekeeping/domains/hotel/services/mutations-runtime.ts",
new Set([
"src/features/housekeeping/domains/hotel/services/mutations",
"src/lib/db",
"src/lib/services/rcon",
"drizzle-orm",
]),
],
[
"src/features/housekeeping/domains/hotel/services/mutations.ts",
new Set([
"src/features/housekeeping/domains/hotel/services/mutations-production",
]),
],
[
"src/features/housekeeping/foundation/commands/bootstrap.ts",
new Set([
"src/features/housekeeping/domains/content/commands/content-commands",
"src/features/housekeeping/domains/economy/commands/economy-commands",
"src/features/housekeeping/domains/hotel/commands/hotel-commands",
"src/features/housekeeping/domains/people/commands/community-commands",
"src/features/housekeeping/domains/people/commands/moderation-commands",
"src/features/housekeeping/domains/people/commands/support-commands",
@@ -715,6 +839,7 @@ const approvedRuntimeImports = new Map<string, ReadonlySet<string>>([
new Set([
"src/features/housekeeping/domains/content/route-handlers",
"src/features/housekeeping/domains/economy/route-handlers",
"src/features/housekeeping/domains/hotel/route-handlers",
"src/features/housekeeping/domains/people/route-handlers",
"src/features/housekeeping/domains/system/route-handlers",
]),
@@ -1315,7 +1440,7 @@ describe("housekeeping foundation completion contracts", () => {
}
});
it("creates the real six-domain registry with People, Content, Economy, and System routes enabled", () => {
it("creates the real six-domain registry with People, Content, Economy, Hotel, and System routes enabled", () => {
const registry = createHousekeepingRegistry(HOUSEKEEPING_MANIFESTS);
expect(registry.domains.map((domain) => domain.id)).toEqual([
@@ -1330,7 +1455,9 @@ describe("housekeeping foundation completion contracts", () => {
registry.domains
.filter(
(domain) =>
!["people", "content", "economy", "system"].includes(domain.id),
!["people", "content", "economy", "hotel", "system"].includes(
domain.id,
),
)
.every((domain) => domain.routes.length === 0),
).toBe(true);
@@ -1349,6 +1476,11 @@ describe("housekeeping foundation completion contracts", () => {
.find((domain) => domain.id === "economy")
?.routes.map((route) => route.id),
).toEqual(ECONOMY_ROUTE_IDS);
expect(
registry.domains
.find((domain) => domain.id === "hotel")
?.routes.map((route) => route.id),
).toEqual(HOTEL_PRIMARY_ROUTE_IDS);
expect(
registry.domains
.find((domain) => domain.id === "system")