app.services.user_game_config_service module

class app.services.user_game_config_service.UserGameConfigService(repository)[source]

Bases: object

Service class for managing user-specific game configurations.

Parameters:

repository (UserGameConfigRepository)

async get_user_config(user_id, game_id)[source]

Fetch the per-user configuration for a game.

Parameters:
  • user_id (UUID) – Internal user identifier.

  • game_id (UUID) – Internal game identifier.

Returns:

Optional[UserGameConfigResponse] – The config, or None if the user has none for that game.

Return type:

UserGameConfigResponse | None

async create_user_config(schema)[source]

Create (or upsert) a user’s configuration for a game.

Parameters:

schema (CreateUserGameConfig) – Config payload (user, game, experiment group and config data).

Returns:

UserGameConfigResponse – The persisted configuration.

Return type:

UserGameConfigResponse

async update_user_config(user_id, game_id, schema)[source]

Update an existing user’s game configuration.

Falls back to the current values for any field omitted in schema.

Parameters:
  • user_id (UUID) – Internal user identifier.

  • game_id (UUID) – Internal game identifier.

  • schema (UpdateUserGameConfig) – Fields to update.

Returns:

Optional[UserGameConfigResponse] – The updated config, or None if no config exists for that user/game.

Return type:

UserGameConfigResponse | None

async delete_user_config(user_id, game_id)[source]

Delete a user’s configuration for a game.

Parameters:
  • user_id (UUID) – Internal user identifier.

  • game_id (UUID) – Internal game identifier.

Returns:

boolTrue if a configuration was deleted, False otherwise.

Return type:

bool