feat: add housekeeping domain registry

This commit is contained in:
Simo committed 2026-08-25 19:39:08 +02:00
1 parent 7edca410fa
commit 2d5f03048a
14 files changed
+694

No files matched your search

@@ -0,0 +1,22 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const contentManifest = {
id: "content",
labelKey: "pages.housekeeping.domains.content.title",
descriptionKey: "pages.housekeeping.domains.content.description",
iconId: "file-text",
previewHref: "/admin-next/content",
capability: anyCapability(
PERMS.NEWS_VIEW,
PERMS.PAGES_VIEW,
PERMS.BANNERS_VIEW,
PERMS.EVENTS_VIEW,
PERMS.POLLS_VIEW,
PERMS.PREFIXES_VIEW,
),
routes: [],
} satisfies HousekeepingDomainManifest;
@@ -0,0 +1,15 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const economyManifest = {
id: "economy",
labelKey: "pages.housekeeping.domains.economy.title",
descriptionKey: "pages.housekeeping.domains.economy.description",
iconId: "gem",
previewHref: "/admin-next/economy",
capability: anyCapability(PERMS.CATALOG_VIEW, PERMS.SHOP_VIEW),
routes: [],
} satisfies HousekeepingDomainManifest;
@@ -0,0 +1,19 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const hotelManifest = {
id: "hotel",
labelKey: "pages.housekeeping.domains.hotel.title",
descriptionKey: "pages.housekeeping.domains.hotel.description",
iconId: "hotel",
previewHref: "/admin-next/hotel",
capability: anyCapability(
PERMS.ROOMS_VIEW,
PERMS.RADIO_VIEW,
PERMS.ASSETS_IMPORT,
),
routes: [],
} satisfies HousekeepingDomainManifest;
@@ -0,0 +1,15 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const operationsManifest = {
id: "operations",
labelKey: "pages.housekeeping.domains.operations.title",
descriptionKey: "pages.housekeeping.domains.operations.description",
iconId: "inbox",
previewHref: "/admin-next/operations",
capability: anyCapability(PERMS.ADMIN_DASHBOARD),
routes: [],
} satisfies HousekeepingDomainManifest;
@@ -0,0 +1,26 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const peopleManifest = {
id: "people",
labelKey: "pages.housekeeping.domains.people.title",
descriptionKey: "pages.housekeeping.domains.people.description",
iconId: "users",
previewHref: "/admin-next/people",
capability: anyCapability(
PERMS.USERS_VIEW,
PERMS.MODERATION_VIEW,
PERMS.TICKETS_VIEW,
PERMS.BANS_VIEW,
PERMS.MOD_DASHBOARD,
PERMS.MOD_CFH_VIEW,
PERMS.MOD_TEAM_VIEW,
PERMS.MOD_TICKETS_VIEW,
PERMS.MOD_USERS_VIEW,
PERMS.MOD_BANS_VIEW,
),
routes: [],
} satisfies HousekeepingDomainManifest;
@@ -0,0 +1,23 @@
import { PERMS } from "@/lib/permission-slugs";
import {
anyCapability,
type HousekeepingDomainManifest,
} from "../../foundation/contracts";
export const systemManifest = {
id: "system",
labelKey: "pages.housekeeping.domains.system.title",
descriptionKey: "pages.housekeeping.domains.system.description",
iconId: "settings",
previewHref: "/admin-next/system",
capability: anyCapability(
PERMS.SETTINGS_VIEW,
PERMS.LOGS_VIEW,
PERMS.ANALYTICS_VIEW,
PERMS.DEVOPS_VIEW,
PERMS.NOTIFICATIONS_VIEW,
PERMS.PERMISSIONS_MANAGE,
PERMS.RCON_EXECUTE,
),
routes: [],
} satisfies HousekeepingDomainManifest;