summaryrefslogtreecommitdiff
path: root/lib/email-log/validations.ts
blob: 5554a0aa57c9d10f1ed3e4680b5311033b3c4312 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { createSearchParamsCache, parseAsArrayOf, parseAsInteger, parseAsString, parseAsStringEnum } from "nuqs/server";
import * as z from "zod";
import { getFiltersStateParser, getSortingStateParser } from "@/lib/parsers";
import { emailLogs } from "@/db/schema/emailLogs";

export const SearchParamsEmailLogCache = createSearchParamsCache({
  flags: parseAsArrayOf(z.enum(["advancedTable", "floatingBar"])) .withDefault([]),
  page: parseAsInteger.withDefault(1),
  perPage: parseAsInteger.withDefault(10),
  sort: getSortingStateParser<typeof emailLogs>().withDefault([{ id: "createdAt", desc: true }]),
  filters: getFiltersStateParser().withDefault([]),
  joinOperator: parseAsStringEnum(["and", "or"]).withDefault("and"),
  search: parseAsString.withDefault(""),
});

export type GetEmailLogSchema = Awaited<ReturnType<typeof SearchParamsEmailLogCache.parse>>;