Send purchase state
This commit is contained in:
@ -1,13 +1,14 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from typing import TypeVar, Generic
|
||||
from typing import Optional, TypeVar
|
||||
|
||||
from pydantic import Field
|
||||
from pydantic.generics import GenericModel
|
||||
|
||||
from hopper.api.dto import BaseModel, BoardDto, DestinationDto, PlayerDto, PositionDto
|
||||
from hopper.enums import ObjectType
|
||||
from hopper.models.product import Product
|
||||
|
||||
|
||||
class LayerObjectDto(BaseModel):
|
||||
@ -20,6 +21,11 @@ class LayerDto(BaseModel):
|
||||
objects: list[LayerObjectDto]
|
||||
|
||||
|
||||
class ProductDto(BaseModel):
|
||||
name: str
|
||||
uuid: str
|
||||
|
||||
|
||||
class GameDumpPlayerDto(PlayerDto):
|
||||
...
|
||||
|
||||
@ -31,12 +37,20 @@ class GameDumpDto(BaseModel):
|
||||
layers: list[LayerDto]
|
||||
|
||||
|
||||
class ProductPurchaseStartDto(BaseModel):
|
||||
products: list[ProductDto]
|
||||
|
||||
|
||||
class ProductPurchaseDoneDto(BaseModel):
|
||||
product: Optional[ProductDto] = None
|
||||
|
||||
|
||||
TMessageData = TypeVar("TMessageData", bound=BaseModel)
|
||||
|
||||
|
||||
class WSMessage(GenericModel):
|
||||
message: str
|
||||
data: TMessageData
|
||||
data: Optional[TMessageData] = None
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.to_str()
|
||||
@ -48,3 +62,13 @@ class WSMessage(GenericModel):
|
||||
class WSGameDumpMessage(WSMessage):
|
||||
message: str = "game_dump"
|
||||
data: GameDumpDto
|
||||
|
||||
|
||||
class WSProductPurchaseStart(WSMessage):
|
||||
message: str = "product_purchase_start"
|
||||
data: ProductPurchaseStartDto
|
||||
|
||||
|
||||
class WSProductPurchaseDone(WSMessage):
|
||||
message: str = "product_purchase_done"
|
||||
data: ProductPurchaseDoneDto
|
||||
|
||||
Reference in New Issue
Block a user