import type { KnowledgeAdapter, KnowledgeAdapterId } from './types';
import { userProfileAdapter } from './user-profile';
import { orderHistoryAdapter } from './order-history';
import { orderContextAdapter } from './order-context';
import { dealInfoAdapter } from './deal-info';
import { vendorProfileAdapter } from './vendor-profile';
import { vendorPayoutsAdapter } from './vendor-payouts';
import { returnPolicyAdapter } from './return-policy';
import { affiliateHistoryAdapter } from './affiliate-history';
import { kbSearchAdapter } from './kb-search';
import { attachmentsAdapter } from './attachments';
import { platformStatusAdapter } from './platform-status';

export const KNOWLEDGE_ADAPTERS: Record<KnowledgeAdapterId, KnowledgeAdapter> = {
  'user-profile': userProfileAdapter,
  'order-history': orderHistoryAdapter,
  'order-context': orderContextAdapter,
  'deal-info': dealInfoAdapter,
  'vendor-profile': vendorProfileAdapter,
  'vendor-payouts': vendorPayoutsAdapter,
  'return-policy': returnPolicyAdapter,
  'affiliate-history': affiliateHistoryAdapter,
  'kb-search': kbSearchAdapter,
  attachments: attachmentsAdapter,
  'platform-status': platformStatusAdapter,
};

export function getKnowledgeAdapter(id: KnowledgeAdapterId): KnowledgeAdapter {
  return KNOWLEDGE_ADAPTERS[id];
}

export function listKnowledgeAdapters(): KnowledgeAdapter[] {
  return Object.values(KNOWLEDGE_ADAPTERS);
}
