'use client'

import { RouterProvider, useRouter } from '@/lib/router'
import { Header } from '@/components/site/header'
import { Footer } from '@/components/site/footer'
import { BackToTop } from '@/components/site/back-to-top'
import { HomePage } from '@/views/home'
import { AboutPage } from '@/views/about'
import { ResearchPage } from '@/views/research'
import { SpecialtyPage } from '@/views/specialty'
import { VitaminsPage } from '@/views/vitamins'
import { ApiPage } from '@/views/api'
import { ManufacturingPage } from '@/views/manufacturing'
import { QualityPage } from '@/views/quality'
import { BiotechnologyPage } from '@/views/biotechnology'
import { CdmoPage } from '@/views/cdmo'
import { InnovationPage } from '@/views/innovation'
import { SustainabilityPage } from '@/views/sustainability'
import { KnowledgePage } from '@/views/knowledge'
import { InvestorsPage } from '@/views/investors'
import { CareersPage } from '@/views/careers'
import { NewsPage } from '@/views/news'
import { ContactPage } from '@/views/contact'
import { PrivacyPage } from '@/views/privacy'
import { TermsPage } from '@/views/terms'
import { CookiesPage } from '@/views/cookies'
import { PharmacovigilancePage } from '@/views/pharmacovigilance'
import type { RouteKey } from '@/lib/router'

const PAGES: Record<RouteKey, React.ComponentType> = {
  home: HomePage,
  about: AboutPage,
  research: ResearchPage,
  specialty: SpecialtyPage,
  vitamins: VitaminsPage,
  api: ApiPage,
  manufacturing: ManufacturingPage,
  quality: QualityPage,
  biotechnology: BiotechnologyPage,
  cdmo: CdmoPage,
  innovation: InnovationPage,
  sustainability: SustainabilityPage,
  knowledge: KnowledgePage,
  investors: InvestorsPage,
  careers: CareersPage,
  news: NewsPage,
  contact: ContactPage,
  privacy: PrivacyPage,
  terms: TermsPage,
  cookies: CookiesPage,
  pharmacovigilance: PharmacovigilancePage,
}

function CurrentPage() {
  const { route } = useRouter()
  const Page = PAGES[route] ?? HomePage
  return (
    <main id="main" className="flex-1">
      <Page />
    </main>
  )
}

export default function Home() {
  return (
    <RouterProvider>
      <div className="flex min-h-screen flex-col bg-background">
        <Header />
        <CurrentPage />
        <Footer />
        <BackToTop />
      </div>
    </RouterProvider>
  )
}
