import PageHeader from "@/components/app/PageHeader"
import PageShell from "@/components/app/PageShell"
import { Button } from "@/components/ui/button"
import DepartmentList from "@/features/departments/components/DepartmentList"

import { listDepartmentsWithChildren, deleteDepartment } from "@/features/departments/service"

interface DepartmentsPageProps {
  searchParams: Promise<{ delete?: string }>
}

export default async function DepartmentsPage({ searchParams }: DepartmentsPageProps) {
  const { delete: deleteId } = await searchParams

  if (deleteId) {
    await deleteDepartment(deleteId)
  }

  const departments = await listDepartmentsWithChildren()

  return (
    <PageShell>
      <PageHeader
        title="Departments"
        description="Create departments and optional sub-departments."
        actions={
          <Button asChild>
            <a href="/departments/create">Add Department</a>
          </Button>
        }
      />
      <DepartmentList departments={departments} />
    </PageShell>
  )
}
