mirror of
https://github.com/versia-pub/server.git
synced 2026-04-27 12:49:16 +02:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { z } from "zod";
|
|
import { TextContentFormatSchema } from "../contentformat.ts";
|
|
import {
|
|
EntitySchema,
|
|
ReferenceSchema,
|
|
TransientEntitySchema,
|
|
} from "../entity.ts";
|
|
|
|
export const GroupSchema = EntitySchema.extend({
|
|
type: z.literal("pub.versia:groups/Group"),
|
|
name: TextContentFormatSchema.nullish(),
|
|
description: TextContentFormatSchema.nullish(),
|
|
open: z.boolean(),
|
|
});
|
|
|
|
export const GroupSubscribeSchema = TransientEntitySchema.extend({
|
|
type: z.literal("pub.versia:groups/Subscribe"),
|
|
subscriber: ReferenceSchema,
|
|
group: ReferenceSchema,
|
|
});
|
|
|
|
export const GroupUnsubscribeSchema = TransientEntitySchema.extend({
|
|
type: z.literal("pub.versia:groups/Unsubscribe"),
|
|
subscriber: ReferenceSchema,
|
|
group: ReferenceSchema,
|
|
});
|
|
|
|
export const GroupSubscribeAcceptSchema = TransientEntitySchema.extend({
|
|
type: z.literal("pub.versia:groups/SubscribeAccept"),
|
|
subscriber: ReferenceSchema,
|
|
group: ReferenceSchema,
|
|
});
|
|
|
|
export const GroupSubscribeRejectSchema = TransientEntitySchema.extend({
|
|
type: z.literal("pub.versia:groups/SubscribeReject"),
|
|
subscriber: ReferenceSchema,
|
|
group: ReferenceSchema,
|
|
});
|