import EntityPage from "../EntityPage";

export default ({ rows }: { rows: any[] }) => {
    // Daftar kategori unik (diurutkan) untuk opsi dropdown filter
    // "Kategori", diambil dari data yang sedang tampil karena kategori
    // product bebas diisi (tidak dikonfigurasi terpusat seperti Customer).
    const categories = Array.from(
        new Set((rows ?? []).map((r) => r.category).filter(Boolean)),
    ).sort((a, b) => a.localeCompare(b));

    return (
        <EntityPage
            title="Product"
            description="Master produk, harga, stok, dan kategori."
            resource="products"
            rows={rows}
            exportImport
            filters={[
                { key: "category", label: "Kategori", options: categories },
            ]}
            fields={[
                { name: "code", label: "Kode Produk" },
                { name: "name", label: "Nama Produk" },
                { name: "category", label: "Kategori" },
                { name: "price", label: "Harga", type: "number" },
                { name: "stock", label: "Stok", type: "number" },
            ]}
            columns={[
                { key: "code", label: "Kode" },
                { key: "name", label: "Produk" },
                { key: "category", label: "Kategori" },
                {
                    key: "price",
                    label: "Harga",
                    render: (r) =>
                        `Rp ${Number(r.price || 0).toLocaleString("id-ID")}`,
                },
                { key: "stock", label: "Stok" },
            ]}
        />
    );
};
