summaryrefslogtreecommitdiff
path: root/packages/backend/src/models/json-schema/reversi-game.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/backend/src/models/json-schema/reversi-game.ts')
-rw-r--r--packages/backend/src/models/json-schema/reversi-game.ts234
1 files changed, 234 insertions, 0 deletions
diff --git a/packages/backend/src/models/json-schema/reversi-game.ts b/packages/backend/src/models/json-schema/reversi-game.ts
new file mode 100644
index 0000000000..0d23b9dc79
--- /dev/null
+++ b/packages/backend/src/models/json-schema/reversi-game.ts
@@ -0,0 +1,234 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and other misskey contributors
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+export const packedReversiGameLiteSchema = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ createdAt: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'date-time',
+ },
+ startedAt: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'date-time',
+ },
+ isStarted: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ isEnded: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ form1: {
+ type: 'any',
+ optional: false, nullable: true,
+ },
+ form2: {
+ type: 'any',
+ optional: false, nullable: true,
+ },
+ user1Ready: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ user2Ready: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ user1Id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ user2Id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ user1: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'User',
+ },
+ user2: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'User',
+ },
+ winnerId: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'id',
+ },
+ winner: {
+ type: 'object',
+ optional: false, nullable: true,
+ ref: 'User',
+ },
+ surrendered: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'id',
+ },
+ black: {
+ type: 'number',
+ optional: false, nullable: true,
+ },
+ bw: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ isLlotheo: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ canPutEverywhere: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ loopedBoard: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ },
+} as const;
+
+export const packedReversiGameDetailedSchema = {
+ type: 'object',
+ properties: {
+ id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ createdAt: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'date-time',
+ },
+ startedAt: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'date-time',
+ },
+ isStarted: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ isEnded: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ form1: {
+ type: 'any',
+ optional: false, nullable: true,
+ },
+ form2: {
+ type: 'any',
+ optional: false, nullable: true,
+ },
+ user1Ready: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ user2Ready: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ user1Id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ user2Id: {
+ type: 'string',
+ optional: false, nullable: false,
+ format: 'id',
+ },
+ user1: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'User',
+ },
+ user2: {
+ type: 'object',
+ optional: false, nullable: false,
+ ref: 'User',
+ },
+ winnerId: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'id',
+ },
+ winner: {
+ type: 'object',
+ optional: false, nullable: true,
+ ref: 'User',
+ },
+ surrendered: {
+ type: 'string',
+ optional: false, nullable: true,
+ format: 'id',
+ },
+ black: {
+ type: 'number',
+ optional: false, nullable: true,
+ },
+ bw: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ isLlotheo: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ canPutEverywhere: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ loopedBoard: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ logs: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ type: 'object',
+ optional: false, nullable: false,
+ properties: {
+ at: {
+ type: 'number',
+ optional: false, nullable: false,
+ },
+ color: {
+ type: 'boolean',
+ optional: false, nullable: false,
+ },
+ pos: {
+ type: 'number',
+ optional: false, nullable: false,
+ },
+ },
+ },
+ },
+ map: {
+ type: 'array',
+ optional: false, nullable: false,
+ items: {
+ type: 'string',
+ optional: false, nullable: false,
+ },
+ },
+ },
+} as const;