Something went wrong. Try again.
Barazo AppView backend barazo.forum
Something went wrong. Try again.
2.4 kB · 74 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475import { z } from 'zod'
// ---------------------------------------------------------------------------// Mod notes// ---------------------------------------------------------------------------
export const createModNoteSchema = z .object({ subjectDid: z.string().min(1).optional(), subjectUri: z.string().min(1).optional(), content: z.string().min(1).max(5000), }) .refine( (data) => { const hasDid = data.subjectDid !== undefined const hasUri = data.subjectUri !== undefined return (hasDid && !hasUri) || (!hasDid && hasUri) }, { message: 'Exactly one of subjectDid or subjectUri must be provided' }, )
export const modNoteQuerySchema = z.object({ subjectDid: z.string().optional(), subjectUri: z.string().optional(), cursor: z.string().optional(), limit: z.coerce.number().int().min(1).max(100).default(25),})
export const deleteModNoteSchema = z.object({ id: z.coerce.number().int().positive(),})
// ---------------------------------------------------------------------------// Topic notices// ---------------------------------------------------------------------------
export const createTopicNoticeSchema = z.object({ topicUri: z.string().min(1), noticeType: z.enum(['closed', 'moved', 'outdated', 'announcement', 'custom']), headline: z.string().min(1).max(200), body: z.string().max(2000).optional(),})
export const dismissTopicNoticeSchema = z.object({ id: z.coerce.number().int().positive(),})
export const topicNoticeQuerySchema = z.object({ topicUri: z.string().optional(), cursor: z.string().optional(), limit: z.coerce.number().int().min(1).max(100).default(25),})
// ---------------------------------------------------------------------------// Mod warnings// ---------------------------------------------------------------------------
export const createWarningSchema = z.object({ targetDid: z.string().min(1), warningType: z.enum(['off_topic', 'harassment', 'rule_violation', 'other', 'custom']), message: z.string().min(1).max(2000), modComment: z.string().max(300).optional(), internalNote: z.string().max(5000).optional(),})
export const warningQuerySchema = z.object({ targetDid: z.string().optional(), cursor: z.string().optional(), limit: z.coerce.number().int().min(1).max(100).default(25),})
export const acknowledgeWarningSchema = z.object({ id: z.coerce.number().int().positive(),})