74 lines
2.4 KiB
TypeScript
74 lines
2.4 KiB
TypeScript
import { Z } from "./types";
|
|
|
|
export function exportGetSessionsSchema(z: Z) {
|
|
const GetSessionsResponseSchema = z.object({
|
|
total: z.number().positive().openapi({
|
|
title: "Total logs",
|
|
description:
|
|
"The total number of logs satisfying the filters, regardless of pagination",
|
|
example: 14,
|
|
}),
|
|
sessions: z
|
|
.object({
|
|
id: z.string().openapi({
|
|
title: "Session GUID",
|
|
description: "A unique identifier for the single play session",
|
|
example: "11111111-2222-3333-4444-555555555555",
|
|
}),
|
|
save_id: z.string().openapi({
|
|
title: "Save GUID",
|
|
description:
|
|
"A unique identifier for a whole game, which can be part of a multi-session game",
|
|
example: "11111111-2222-3333-4444-555555555555",
|
|
}),
|
|
game_name: z.string().openapi({
|
|
title: "Game name",
|
|
description: "Name of the game that generated this log",
|
|
example: "Asteroid",
|
|
}),
|
|
version: z.string().openapi({
|
|
title: "Version",
|
|
description: "Version of the game that generated this log",
|
|
example: "1.7.0",
|
|
}),
|
|
start_time: z.date().openapi({
|
|
title: "Start Time",
|
|
description: "Time of the first log event for this session",
|
|
example: "2025-01-06T14:46:38.000Z",
|
|
}),
|
|
end_time: z.date().openapi({
|
|
title: "Start Time",
|
|
description: "Time of the last log event for this session",
|
|
example: "2025-01-06T14:46:38.000Z",
|
|
}),
|
|
num_events: z.number().positive().openapi({
|
|
title: "# Events",
|
|
description: "Number of events in this session",
|
|
example: "48",
|
|
}),
|
|
})
|
|
.array(),
|
|
});
|
|
|
|
const GetSessionsRequestQuerySchema = z.object({
|
|
skip: z.coerce.number().optional().openapi({
|
|
title: "Skip",
|
|
default:
|
|
"How many log events to skip from the beginning of this session (used for pagination)",
|
|
example: "30",
|
|
}),
|
|
count: z.coerce.number().optional().openapi({
|
|
title: "Count",
|
|
default: "How many log events to return at most (used for pagination)",
|
|
example: "10",
|
|
}),
|
|
id: z.string().optional().openapi({
|
|
title: "Session GUID",
|
|
description: "A filter for the session GUID",
|
|
example: "11111111-2222-3333-4444-555555555555",
|
|
}),
|
|
});
|
|
|
|
return { GetSessionsResponseSchema, GetSessionsRequestQuerySchema };
|
|
}
|