import { User } from './identity'; export interface IAppConfig { name: string; users: User[]; ticketingConfig: TicketingConfig | null; chatConfig: ChatConfig | null; tokens: TokenConfig[]; entitlement: Entitlement; created: Date; updated: Date; } export interface DashboardBootstrapConfig { config: AppConfig; } export interface AppConfig extends IAppConfig { id: string; } export interface Tier { name: string; displayName: string; description?: string; productId: string; rateExp: { responseLimit: number; }; survey: { responseLimit: number; }; callToAction?: { text: string; url: string; }; features: Array<{ key: string; value: string; }>; } export type Upsell = Tier & { pricingTableId: string | null; }; export interface Entitlement { status: 'active' | 'inactive' | 'feeba_admin'; tier: { current: Tier; upsell: Upsell | null; }; stripe: { subscriptionId?: string; customerId?: string; publishingToken: string; }; } export interface TicketingConfig { trello: TrelloConfig; } export interface TrelloConfig { boardId: string; apiKey: string; token: string; listId: string; } export interface ChatConfig { telegramConfig: TelegramConfig; } export interface TelegramConfig { botToken: string; chatId: string; } export interface TokenConfig { userId: string; jwtToken: string; created: Date; }