import type { Manual } from "@/lib/manuals-types" import { filterMDBManuals, filterManualsBySite, filterManufacturersByMinCount, } from "@/lib/manuals" import { getAllowedManufacturers, getManufacturerAliases, getMinManualCount, getSiteDomain, shouldIncludePaymentComponents, } from "@/lib/site-config" export type ManualSelectionResult = { siteDomain: string totalInput: number mdbEligible: number siteVisible: number finalCount: number manuals: Manual[] } export function selectManualsForSite( manuals: Manual[], siteDomain: string = getSiteDomain() ): ManualSelectionResult { const allowedManufacturers = getAllowedManufacturers(siteDomain) const manufacturerAliases = getManufacturerAliases() const minManualCount = getMinManualCount(siteDomain) const includePaymentComponents = shouldIncludePaymentComponents(siteDomain) const mdbEligible = filterMDBManuals(manuals) const siteVisible = filterManualsBySite( mdbEligible, allowedManufacturers, manufacturerAliases, includePaymentComponents ) const finalManuals = filterManufacturersByMinCount( siteVisible, minManualCount ) return { siteDomain, totalInput: manuals.length, mdbEligible: mdbEligible.length, siteVisible: siteVisible.length, finalCount: finalManuals.length, manuals: finalManuals, } }