import { MainConfigModel } from '@app/event-emitter/models/main-config-model';
import { SimpleKanbanBoardConfig } from 'src/configs/simple-kanban-board.config';
import { EccmConfig } from './eccm-config.model';
import { StatusChangesConfig } from './status-changes-config.model';
import { StatusesConfig } from './statuses-config.model';

export type AppConfig = {
  redmineIssueEventEmitterConfig: MainConfigModel;
  redmineStatuses: StatusesConfig.Config;
  redmineStatusChanges: StatusChangesConfig.Config;
  redmineEccm: EccmConfig.Config;
  redmineCurrentUserRules: Record<string, string>;
  simpleKanbanBoard: SimpleKanbanBoardConfig;
  couchDb: {
    dbs: {
      changes: string;
      userMetaInfo: string;
      eccmDailyReports: string;
      eccmDailyReportsUserComments: string;
    };
  };
  telegramBotToken: string;
  periodValidityNotification: number;
  tagManager: {
    updateInterval: number;
    updateItemsLimit: number;
    tagsCustomFieldName: string;
  };
} & Record<string, any>;
