"use client";
import { DatabaseBackupIcon } from "lucide-react";
import { PaginatedTable } from "../../../_components/PaginatedTable";
import Link from "next/link";
import { ColumnDef } from "@tanstack/react-table";
import { Heliport, Prisma } from "@repo/db";

const page = () => {
	return (
		<>
			<PaginatedTable
				stickyHeaders
				prismaModel="heliport"
				getFilter={(searchTerm) =>
					({
						OR: [
							{ siteName: { contains: searchTerm, mode: "insensitive" } },
							{ info: { contains: searchTerm, mode: "insensitive" } },
							{ hospital: { contains: searchTerm, mode: "insensitive" } },
							{ designator: { contains: searchTerm, mode: "insensitive" } },
						],
					}) as Prisma.HeliportWhereInput
				}
				showSearch
				columns={
					[
						{
							header: "Typ",
							accessorKey: "type",
						},
						{
							accessorKey: "designator",
							header: "Designator",
						},
						{
							header: "Name",
							accessorKey: "siteName",
						},
						{
							header: "Name (21 zeichen)",
							accessorKey: "siteNameSub21",
						},

						{
							header: "Aktionen",
							cell: ({ row }) => (
								<div className="flex items-center gap-1">
									<Link href={`/admin/heliport/${row.original.id}`}>
										<button className="btn btn-sm">Edit</button>
									</Link>
								</div>
							),
						},
					] as ColumnDef<Heliport>[]
				}
				leftOfSearch={
					<span className="flex items-center gap-2">
						<DatabaseBackupIcon className="h-5 w-5" /> Heliports
					</span>
				}
				rightOfSearch={
					<p className="flex items-center justify-between gap-2 text-left text-2xl font-semibold">
						<Link href={"/admin/heliport/new"}>
							<button className="btn btn-sm btn-outline btn-primary">Erstellen</button>
						</Link>
					</p>
				}
			/>
		</>
	);
};

export default page;
