diff --git a/src/elysia.ts b/src/elysia.ts index e9baa2aa..a3a11e47 100644 --- a/src/elysia.ts +++ b/src/elysia.ts @@ -7,31 +7,40 @@ import { verifyAllUsers } from "./lib/members/verifyAllUsers.js"; import { bot } from "./main.js"; import { prisma } from "./prisma.js"; -const UserSchema = t.Object({ - id: t.String(), - username: t.String(), - globalName: t.Nullable(t.String()), - joinedAt: t.String(), - displayAvatarURL: t.String(), - bannerUrl: t.Union([t.String(), t.Null(), t.Undefined()]), - displayHexColor: t.Optional(t.String()), - memberRoles: t.Array(t.String()), -}); - -const NewsAttachmentSchema = t.Object({ - url: t.String(), - width: t.Union([t.Number(), t.Null()]), - height: t.Union([t.Number(), t.Null()]), - contentType: t.Union([t.String(), t.Null()]), -}); - -const NewsSchema = t.Object({ - id: t.String(), - content: t.String(), - createdAt: t.String(), - attachments: t.Array(NewsAttachmentSchema), - user: UserSchema, -}); +const UserSchema = t.Object( + { + id: t.String(), + username: t.String(), + globalName: t.Nullable(t.String()), + joinedAt: t.String(), + displayAvatarURL: t.String(), + bannerUrl: t.Union([t.String(), t.Null(), t.Undefined()]), + displayHexColor: t.Optional(t.String()), + memberRoles: t.Array(t.String()), + }, + { $id: "User" } +); + +const NewsAttachmentSchema = t.Object( + { + url: t.String(), + width: t.Union([t.Number(), t.Null()]), + height: t.Union([t.Number(), t.Null()]), + contentType: t.Union([t.String(), t.Null()]), + }, + { $id: "NewsAttachment" } +); + +const NewsSchema = t.Object( + { + id: t.String(), + content: t.String(), + createdAt: t.String(), + attachments: t.Array(NewsAttachmentSchema), + user: UserSchema, + }, + { $id: "News" } +); const cache: Record = {}; const locks: Record = {};