import { REDOCLY_ROUTE_RBAC, REDOCLY_TEAMS_RBAC } from '@redocly/config';

import { extractDocumentSearchFacets, setDocumentSearchFacets } from './search-facets.js';

export function searchResolver(actions: any) {
  return async (route: any, staticData: any) => {
    const metadata = route.metadata || {};
    const facets = extractDocumentSearchFacets(actions, metadata);
    setDocumentSearchFacets(actions, facets);
    const searchDocument = [
      {
        id: route.slug,
        url: route.slug,
        title: staticData?.props?.title,
        text: staticData?.props?.description,
        facets,
        [REDOCLY_TEAMS_RBAC]: staticData[REDOCLY_TEAMS_RBAC] as Record<string, string>,
        [REDOCLY_ROUTE_RBAC]: staticData[REDOCLY_ROUTE_RBAC],
      },
    ];

    return searchDocument;
  };
}
