feat(market): track user points change

This commit is contained in:
2026-05-23 20:26:59 +02:00
parent 42e3571fab
commit a264336bd8
14 changed files with 339 additions and 48 deletions
+6 -7
View File
@@ -8,9 +8,9 @@ from pydantic import field_serializer, model_validator
class MarketOptionSchema(Schema):
uuid: UUID
text: str
position: int
total_bets: int = 0
@field_serializer('uuid')
@field_serializer("uuid")
def serialize_uuid(self, value: UUID) -> str:
return str(value)
@@ -19,14 +19,13 @@ class MarketListSchema(Schema):
uuid: UUID
title: str
description: str
type: str
status: str
end_date: datetime
created_at: datetime
options: List[MarketOptionSchema]
winning_option: Optional[MarketOptionSchema] = None
@field_serializer('uuid')
@field_serializer("uuid")
def serialize_uuid(self, value: UUID) -> str:
return str(value)
@@ -47,13 +46,13 @@ class UserBetSchema(Schema):
option: MarketOptionSchema
market: Optional[MarketListSchema] = None
@field_serializer('uuid')
@field_serializer("uuid")
def serialize_uuid(self, value: UUID) -> str:
return str(value)
@model_validator(mode='before')
@model_validator(mode="before")
@classmethod
def resolve_market_from_option(cls, data: Any) -> Any:
if hasattr(data, 'option') and hasattr(data.option, 'market'):
if hasattr(data, "option") and hasattr(data.option, "market"):
data.market = data.option.market
return data