Barazo AppView backend
barazo.forum
1import { z } from 'zod'
2
3// ---------------------------------------------------------------------------
4// Community filter schemas
5// ---------------------------------------------------------------------------
6
7export const communityFilterQuerySchema = z.object({
8 status: z.enum(['active', 'warned', 'filtered']).optional(),
9 cursor: z.string().optional(),
10 limit: z.coerce.number().int().min(1).max(100).default(25),
11})
12
13export type CommunityFilterQueryInput = z.infer<typeof communityFilterQuerySchema>
14
15export const updateCommunityFilterSchema = z.object({
16 status: z.enum(['active', 'warned', 'filtered']),
17 reason: z.string().max(1000).optional(),
18 adminDid: z.string().min(1).optional(),
19})
20
21export type UpdateCommunityFilterInput = z.infer<typeof updateCommunityFilterSchema>
22
23// ---------------------------------------------------------------------------
24// Account filter schemas
25// ---------------------------------------------------------------------------
26
27export const accountFilterQuerySchema = z.object({
28 status: z.enum(['active', 'warned', 'filtered']).optional(),
29 communityDid: z.string().optional(),
30 cursor: z.string().optional(),
31 limit: z.coerce.number().int().min(1).max(100).default(25),
32})
33
34export type AccountFilterQueryInput = z.infer<typeof accountFilterQuerySchema>
35
36export const updateAccountFilterSchema = z.object({
37 status: z.enum(['active', 'warned', 'filtered']),
38 reason: z.string().max(1000).optional(),
39})
40
41export type UpdateAccountFilterInput = z.infer<typeof updateAccountFilterSchema>
42
43// ---------------------------------------------------------------------------
44// Global report schemas
45// ---------------------------------------------------------------------------
46
47export const globalReportQuerySchema = z.object({
48 limit: z.coerce.number().int().min(1).max(100).default(25),
49})
50
51export type GlobalReportQueryInput = z.infer<typeof globalReportQuerySchema>