import * as v from 'valibot'; import { accountSchema } from './account'; import { datetimeSchema } from './utils'; /** @see {@link https://docs.joinmastodon.org/entities/Appeal/} */ const appealSchema = v.object({ text: v.string(), state: v.picklist(['approved', 'rejected', 'pending']), }); /** * @category Schemas * @see {@link https://docs.joinmastodon.org/entities/AccountWarning/} */ const accountWarningSchema = v.object({ id: v.string(), action: v.picklist(['none', 'disable', 'mark_statuses_as_sensitive', 'delete_statuses', 'sensitive', 'silence', 'suspend']), text: v.fallback(v.string(), ''), status_ids: v.fallback(v.array(v.string()), []), target_account: accountSchema, appeal: v.fallback(v.nullable(appealSchema), null), created_at: v.fallback(datetimeSchema, new Date().toISOString()), }); /** * @category Entity types */ type AccountWarning = v.InferOutput; export { accountWarningSchema, type AccountWarning };