33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { Type } from '@sinclair/typebox';
|
|
|
|
export const CreateGameSchema = {
|
|
body: Type.Object({
|
|
slug: Type.String({ minLength: 1, maxLength: 100, pattern: '^[a-z0-9-]+$' }),
|
|
name: Type.String({ minLength: 1, maxLength: 255 }),
|
|
dockerImage: Type.String({ minLength: 1 }),
|
|
defaultPort: Type.Number({ minimum: 1, maximum: 65535 }),
|
|
startupCommand: Type.String({ minLength: 1 }),
|
|
stopCommand: Type.Optional(Type.String()),
|
|
configFiles: Type.Optional(Type.Array(Type.Any())),
|
|
environmentVars: Type.Optional(Type.Array(Type.Any())),
|
|
}),
|
|
};
|
|
|
|
export const UpdateGameSchema = {
|
|
body: Type.Object({
|
|
name: Type.Optional(Type.String({ minLength: 1, maxLength: 255 })),
|
|
dockerImage: Type.Optional(Type.String({ minLength: 1 })),
|
|
defaultPort: Type.Optional(Type.Number({ minimum: 1, maximum: 65535 })),
|
|
startupCommand: Type.Optional(Type.String({ minLength: 1 })),
|
|
stopCommand: Type.Optional(Type.String()),
|
|
configFiles: Type.Optional(Type.Array(Type.Any())),
|
|
environmentVars: Type.Optional(Type.Array(Type.Any())),
|
|
}),
|
|
};
|
|
|
|
export const GameIdParamSchema = {
|
|
params: Type.Object({
|
|
gameId: Type.String({ format: 'uuid' }),
|
|
}),
|
|
};
|