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

export default () => {
	return (
		<>
			<PaginatedTable
				stickyHeaders
				initialOrderBy={[{ id: "category", desc: true }]}
				prismaModel="keyword"
				showSearch
				getFilter={(searchTerm) =>
					({
						OR: [
							{ name: { contains: searchTerm, mode: "insensitive" } },
							{ abreviation: { contains: searchTerm, mode: "insensitive" } },
							{ category: { contains: searchTerm, mode: "insensitive" } },
						],
					}) as Prisma.KeywordWhereInput
				}
				columns={
					[
						{
							header: "Kateogrie",
							accessorKey: "category",
						},
						{
							header: "Abkürzung",
							accessorKey: "abreviation",
						},
						{
							header: "Name",
							accessorKey: "name",
						},
						{
							header: "Aktionen",
							cell: ({ row }) => (
								<div className="flex items-center gap-1">
									<Link href={`/admin/keyword/${row.original.id}`}>
										<button className="btn btn-sm">bearbeiten</button>
									</Link>
								</div>
							),
						},
					] as ColumnDef<Keyword>[]
				}
				leftOfSearch={
					<span className="flex items-center gap-2">
						<DatabaseBackupIcon className="h-5 w-5" /> Stichwörter
					</span>
				}
				rightOfSearch={
					<p className="flex items-center justify-between gap-2 text-left text-2xl font-semibold">
						<Link href={"/admin/keyword/new"}>
							<button className="btn btn-sm btn-outline btn-primary">Erstellen</button>
						</Link>
					</p>
				}
			/>
		</>
	);
};
