from enum import Enum from fastapi_camelcase import CamelModel from pydantic import conint, confloat class GenMethodEnum(str, Enum): map_crunch = "MAPCRUNCH" rsv = "RANDOMSTREETVIEW" urban = "URBAN" class RuleSetEnum(str, Enum): normal = "NORMAL" time_bank = "TIMEBANK" frozen = "FROZEN" race = "RACE" class GameConfig(CamelModel): timer: conint(gt=0) rounds: conint(gt=0) only_america: bool = False generation_method: GenMethodEnum = GenMethodEnum.map_crunch rule_set: RuleSetEnum = RuleSetEnum.normal class Config: orm_mode = True class Guess(CamelModel): lat: confloat(ge=-90.0, le=90.0) lng: confloat(ge=-180.0, le=180.0) time_remaining: int class CacheInfo(CamelModel): generation_method: str only_america: bool size: int