import { DefaultAdminRoles } from "~/application/dtos/shared/DefaultAdminRoles"; import { DefaultAppRoles } from "~/application/dtos/shared/DefaultAppRoles"; const NotificationChannelTypes = [ "admin-accounts", "admin-users", "admin-subscriptions", "admin-api-keys", "admin-emails", "admin-groups", "admin-linked-accounts", "admin-account-members", "admin-onboarding", "admin-rows", "roles", "my-rows", ] as const; export type NotificationChannel = typeof NotificationChannelTypes[number]; export interface NotificationChannelDto { name: NotificationChannel; descriptionKey: `notifications.admin.channelDescriptions.${NotificationChannel}`; roles?: string[]; } export const NotificationChannels: NotificationChannelDto[] = [ { name: "admin-accounts", descriptionKey: "notifications.admin.channelDescriptions.admin-accounts", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-users", descriptionKey: "notifications.admin.channelDescriptions.admin-users", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-subscriptions", descriptionKey: "notifications.admin.channelDescriptions.admin-subscriptions", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-api-keys", descriptionKey: "notifications.admin.channelDescriptions.admin-api-keys", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-emails", descriptionKey: "notifications.admin.channelDescriptions.admin-emails", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-groups", descriptionKey: "notifications.admin.channelDescriptions.admin-groups", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-linked-accounts", descriptionKey: "notifications.admin.channelDescriptions.admin-linked-accounts", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-account-members", descriptionKey: "notifications.admin.channelDescriptions.admin-account-members", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-onboarding", descriptionKey: "notifications.admin.channelDescriptions.admin-onboarding", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "admin-rows", descriptionKey: "notifications.admin.channelDescriptions.admin-rows", roles: [DefaultAdminRoles.SuperAdmin], }, { name: "roles", descriptionKey: "notifications.admin.channelDescriptions.roles", roles: [DefaultAppRoles.SuperUser], }, { name: "my-rows", descriptionKey: "notifications.admin.channelDescriptions.my-rows", }, ];