export enum Page {
  HOME = 'HOME',
  LOGIN = 'LOGIN',
  ACCOUNTS_USER = 'ACCOUNTS_USER',
  ACCOUNTS_USER_ID = 'ACCOUNTS_USER_ID',
  ACCOUNTS_GROUP = 'ACCOUNTS_GROUP',
  ACCOUNTS_GROUP_ID = 'ACCOUNTS_GROUP_ID',
  ASSETS_DASHBOARD = 'ASSETS_DASHBOARD',
  ASSETS_DETAIL = 'ASSETS_DETAIL',
  ASSETS_GROUP = 'ASSETS_GROUP',
  INCIDENTS_DASHBOARD = 'INCIDENTS_DASHBOARD',
  INCIDENTS_DETAIL = 'INCIDENTS_DETAIL',
  STORAGE = 'STORAGE',
  STORAGE_DETAIL = 'STORAGE_DETAIL',
  CORRELATION_RULES_DASHBOARD = 'CORRELATION_RULES_DASHBOARD',
  CORRELATION_RULES_ADD = 'CORRELATION_RULES_ADD',
  CORRELATION_RULES_DETAIL = 'CORRELATION_RULES_DETAIL',
  EVENTS_JOURNAL = 'EVENTS_JOURNAL',
  EVENTS_DETAIL = 'EVENTS_DETAIL',
  DEVICES_DASHBOARD = 'DEVICES_DASHBOARD',
  SECURITY_SYSTEM_DETAIL = 'SECURITY_SYSTEM_DETAIL',
  SECURITY_SYSTEM_GROUP = 'SECURITY_SYSTEM_GROUP',
  NETWORK_MAP_STATIC = 'NETWORK_MAP_STATIC',
  NETWORK_MAP_AUTOMATIC = 'NETWORK_MAP_AUTOMATIC',
  ROTATION_DASHBOARD_INCIDENTS = 'ROTATION_DASHBOARD_INCIDENTS',
  ROTATION_DASHBOARD_EVENTS = 'ROTATION_DASHBOARD_EVENTS',
  CORRELATION_RULES_GROUPS_DASHBOARD = 'CORRELATION_RULES_GROUPS_DASHBOARD',
  EVENT_EXPORT_SETTING = 'EVENT_EXPORT_SETTING',
  NCIRCC_ORGANIZATION_CARD = 'GOSSOPKA_ORGANIZATION_CARD',
  NCIRCC_MESSAGE = 'GOSSOPKA_MESSAGE',
  NCIRCC_API = 'GOSSOPKA_API',
  NCIRCC_BULLETIN = 'GOSSOPKA_BULLETIN',
  USER_PROFILE = 'USER_PROFILE',
  USER_GROUPS = 'USER_GROUPS',
  SETTINGS_TLS = 'SETTINGS_TLS',
  SETTINGS_AUTH = 'SETTINGS_AUTH',
  LICENSE_CURRENT = 'LICENSE_CURRENT',
  LICENSE_ACTIVATION = 'LICENSE_ACTIVATION',
}

export enum CategoryPath {
  ACCOUNTS = '/accounts',
  ASSETS = '/assets',
  INCIDENTS = '/incidents',
  ROTATION_INCIDENTS = '/rotation/incidents',
  ROTATION_EVENTS = '/rotation/events',
  NETWORK_MAP = '/network_map',
  CORRELATION_RULES = '/correlation_rules',
  EVENTS = '/events',
  STORAGE = '/storage',
  SECURITY_SYSTEMS = '/security_systems',
  NCIRCC = '/ncircc',
  SETTINGS = '/settings',
  LICENSE = '/license',
}

export enum PagePath {
  LOGIN = 'login',
  USERS = 'list',
  USERS_GROUP = 'group',
  STATIC = 'static',
  AUTOMATIC = 'automatic',
  ADD = 'add',
  EDIT = 'edit',
  EXPORT = 'export',
  ORGANIZATION_CARD = '/ncircc/organization_card',
  API = '/ncircc/api',
  INFORMATION_EXCHANGE_MESSAGE = '/ncircc/information_exchange_message',
  INFORMATION_EXCHANGE_BULLETIN = '/ncircc/information_exchange_bulletin',
  USER_PROFILE_CARD = 'profile',
  USER_GROUPS_LIST = 'profile/groups',
  TLS_CERTIFICATE = 'tsl_certificate',
  AUTHENTICATION = 'authentication',
  LICENSE_CURRENT = 'current',
  LICENSE_ACTIVATION = `activation`,
}

export enum PagePathParams {
  ID = 'id',
}

export enum TabsPath {
  GROUP = 'group',
}

export const paths: Record<string, string> = {
  [Page.HOME]: '/',
  [Page.LOGIN]: `${PagePath.LOGIN}`,
  [Page.ASSETS_DASHBOARD]: `${CategoryPath.ASSETS}`,
  [Page.ASSETS_DETAIL]: `${CategoryPath.ASSETS}/:${PagePathParams.ID}`,
  [Page.ASSETS_GROUP]: `${CategoryPath.ASSETS}/${TabsPath.GROUP}`,
  [Page.STORAGE]: `${CategoryPath.STORAGE}`,
  [Page.STORAGE_DETAIL]: `${CategoryPath.STORAGE}/:${PagePathParams.ID}`,
  [Page.INCIDENTS_DASHBOARD]: `${CategoryPath.INCIDENTS}`,
  [Page.INCIDENTS_DETAIL]: `${CategoryPath.INCIDENTS}/:${PagePathParams.ID}`,
  [Page.EVENTS_JOURNAL]: `${CategoryPath.EVENTS}`,
  [Page.EVENTS_DETAIL]: `${CategoryPath.EVENTS}/:${PagePathParams.ID}`,
  [Page.ACCOUNTS_USER]: `${CategoryPath.ACCOUNTS}/${PagePath.USERS}`,
  [Page.ACCOUNTS_USER_ID]: `${CategoryPath.ACCOUNTS}/${PagePath.USERS}/:${PagePathParams.ID}`,
  [Page.ACCOUNTS_GROUP]: `${CategoryPath.ACCOUNTS}/${PagePath.USERS_GROUP}`,
  [Page.ACCOUNTS_GROUP_ID]: `${CategoryPath.ACCOUNTS}/${PagePath.USERS_GROUP}/:${PagePathParams.ID}`,
  [Page.ROTATION_DASHBOARD_INCIDENTS]: `${CategoryPath.ROTATION_INCIDENTS}`,
  [Page.ROTATION_DASHBOARD_EVENTS]: `${CategoryPath.ROTATION_EVENTS}`,
  [Page.DEVICES_DASHBOARD]: `${CategoryPath.SECURITY_SYSTEMS}`,
  [Page.SECURITY_SYSTEM_DETAIL]: `${CategoryPath.SECURITY_SYSTEMS}/:${PagePathParams.ID}`,
  [Page.SECURITY_SYSTEM_GROUP]: `${CategoryPath.SECURITY_SYSTEMS}/${TabsPath.GROUP}`,
  [Page.CORRELATION_RULES_DASHBOARD]: `${CategoryPath.CORRELATION_RULES}`,
  [Page.CORRELATION_RULES_GROUPS_DASHBOARD]: `${CategoryPath.CORRELATION_RULES}/${TabsPath.GROUP}`,
  [Page.CORRELATION_RULES_ADD]: `${CategoryPath.CORRELATION_RULES}/${PagePath.ADD}`,
  [Page.CORRELATION_RULES_DETAIL]: `${CategoryPath.CORRELATION_RULES}/:${PagePathParams.ID}`,
  [Page.NETWORK_MAP_STATIC]: `${CategoryPath.NETWORK_MAP}/${PagePath.STATIC}`,
  [Page.EVENT_EXPORT_SETTING]: `${CategoryPath.EVENTS}/${PagePath.EXPORT}`,
  [Page.NETWORK_MAP_AUTOMATIC]: `${CategoryPath.NETWORK_MAP}/${PagePath.AUTOMATIC}`,
  [Page.NCIRCC_ORGANIZATION_CARD]: `${PagePath.ORGANIZATION_CARD}/`,
  [Page.NCIRCC_API]: `${PagePath.API}/`,
  [Page.NCIRCC_MESSAGE]: `${PagePath.INFORMATION_EXCHANGE_MESSAGE}/`,
  [Page.NCIRCC_BULLETIN]: `${PagePath.INFORMATION_EXCHANGE_BULLETIN}/`,
  [Page.USER_PROFILE]: `${CategoryPath.ACCOUNTS}/${PagePath.USER_PROFILE_CARD}/`,
  [Page.USER_GROUPS]: `${CategoryPath.ACCOUNTS}/${PagePath.USER_GROUPS_LIST}/`,
  [Page.SETTINGS_TLS]: `${CategoryPath.SETTINGS}/${PagePath.TLS_CERTIFICATE}/`,
  [Page.SETTINGS_AUTH]: `${CategoryPath.SETTINGS}/${PagePath.AUTHENTICATION}/`,
  [Page.LICENSE_CURRENT]: `${CategoryPath.LICENSE}/${PagePath.LICENSE_CURRENT}/`,
  [Page.LICENSE_ACTIVATION]: `${CategoryPath.LICENSE}/${PagePath.LICENSE_ACTIVATION}/`,
};
