export const BACKTEST_FLAG_KEYS = {
  ENABLE_BACKTEST: 'ENABLE_BACKTEST',
  BACKTEST_CUSTOMER_ENABLED: 'BACKTEST_CUSTOMER_ENABLED',
} as const;

export const TAB_FLAG_KEYS = {
  MARKETPLACE: 'TAB_MARKETPLACE_ENABLED',
  MEMBERSHIP: 'TAB_MEMBERSHIP_ENABLED',
} as const;

export interface BacktestFeatureFlags {
  enableBacktest: boolean;
  customerEnabled: boolean;
  maxCsvBytes?: number;
  maxRows?: number;
}

/**
 * Controls which optional web/mobile tabs are visible for non-admin users.
 * Admin accounts always see all tabs regardless of these flags.
 * All fields default to true (opt-out model via env: TAB_MARKETPLACE_ENABLED=false).
 */
export interface TabFeatureFlags {
  marketplace: boolean;
  membership: boolean;
}

export interface TradingFeatureFlagsResponse {
  backtest: BacktestFeatureFlags;
  tabs: TabFeatureFlags;
}
