import { AppShell } from '@/components/app/app-shell'
import { requireRoleRoute } from '@/lib/role-route'
import { loadCarrierContacts, loadCompanyStatus, loadDashboardBase } from '@/lib/data/dashboard'
import { loadCarrierCompanyInfo } from '@/lib/data/carrier-company'
import { CarrierDashboard } from './carrier-dashboard'
import { tabFromSlug } from './tabs'

/** Carrier Dispatch Dashboard (CD) — carrier companies, dispatchers, operations. */
export default async function CarrierDashboardPage({
  searchParams,
}: {
  /** `?tab=company-info` opens that tab; `?company=<id>` is the HeavyHaul admin's carrier picker. */
  searchParams: Promise<{ tab?: string; company?: string }>
}) {
  const { user, profile } = await requireRoleRoute('carrier')
  const { tab, company } = await searchParams
  const [base, contacts, companyStatus, companyInfo] = await Promise.all([
    loadDashboardBase(user),
    loadCarrierContacts(user),
    loadCompanyStatus(user),
    loadCarrierCompanyInfo(user, { companyId: company ?? null }),
  ])
  return (
    <AppShell profile={profile}>
      <CarrierDashboard
        trips={base.trips}
        warnings={base.warnings}
        permits={base.permits}
        drivers={base.drivers}
        pilots={base.pilots}
        completions={base.completions}
        companyStatus={companyStatus}
        contacts={contacts}
        companyInfo={companyInfo}
        viewer={{ name: profile.full_name || user.name, email: user.email }}
        initialTab={tabFromSlug(tab)}
      />
    </AppShell>
  )
}
