Files
fairhopper/hopper/api/dto.py
Eden Kirin d45aca6c30 uuid -> id
2023-03-31 17:16:00 +02:00

79 lines
1.2 KiB
Python

from __future__ import annotations
from typing import Optional
from pydantic import BaseModel as PydanticBaseModel
from hopper.enums import PlayerState
class BaseModel(PydanticBaseModel):
class Config:
orm_mode = True
class PingResponse(BaseModel):
message: str
class BoardDto(BaseModel):
width: int
height: int
class PositionDto(BaseModel):
x: int
y: int
class PlayerDto(BaseModel):
id: str
name: str
active: bool
position: PositionDto
move_count: int
move_attempt_count: int
state: PlayerState
class DestinationDto(BaseModel):
position: PositionDto
class ProductDto(BaseModel):
name: str
id: str
description: Optional[str] = None
class StartGameRequestDto(BaseModel):
player_name: str
class GameInfoDto(BaseModel):
board: BoardDto
destination: DestinationDto
class StartGameResponseDto(GameInfoDto):
player: PlayerDto
class MovePlayerResponseDto(BaseModel):
player: PlayerDto
class PlayerInfoResponseDto(MovePlayerResponseDto):
...
class ErrorResponseDto(BaseModel):
detail: str
class GetProductsResponse(BaseModel):
products: list[ProductDto]
class PurchaseProductDto(BaseModel):
product_id: str