import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum, } from "nuqs/server" import * as z from "zod" import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers" import { ProjectApprovedVendors } from "@/db/schema" export const searchProjectAVLParamsCache = createSearchParamsCache({ flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])).withDefault( [] ), page: parseAsInteger.withDefault(1), perPage: parseAsInteger.withDefault(10), sort: getSortingStateParser().withDefault([ { id: "approved_at", desc: true }, ]), vendor_code: parseAsString.withDefault(""), vendor_name: parseAsString.withDefault(""), tax_id: parseAsString.withDefault(""), vendor_email: parseAsString.withDefault(""), vendor_phone: parseAsString.withDefault(""), vendor_status: parseAsString.withDefault(""), vendor_type_name_ko: parseAsString.withDefault(""), project_code: parseAsString.withDefault(""), project_name: parseAsString.withDefault(""), pq_status: parseAsString.withDefault(""), // advanced filter filters: getFiltersStateParser().withDefault([]), joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"), search: parseAsString.withDefault(""), }) export type GetProjectAVLSchema = Awaited>