diff --git a/vrobbler/apps/scrobbles/dataclasses.py b/vrobbler/apps/scrobbles/dataclasses.py index 5fdc5cb..cfbffe1 100644 --- a/vrobbler/apps/scrobbles/dataclasses.py +++ b/vrobbler/apps/scrobbles/dataclasses.py @@ -44,7 +44,10 @@ class JSONMetadata(JSONWizard): class BoardGameScore(JSONMetadata): user_id: Optional[int] = None name: Optional[str] = None + bgg_username: Optional[str] = None color: Optional[str] = None + character: Optional[str] = None + team: Optional[str] = None score: Optional[int] = None win: Optional[bool] = None @@ -52,6 +55,9 @@ class BoardGameScore(JSONMetadata): @dataclass class BoardGameMetadata(JSONMetadata): players: Optional[list[BoardGameScore]] = None + difficulty: Optional[int] = None + solo: Optional[bool] = None + two_handed: Optional[bool] = None def geo_location(self): return GeoLocation.objects.filter(id=self.geo_location_id).first() diff --git a/vrobbler/apps/scrobbles/models.py b/vrobbler/apps/scrobbles/models.py index 00562af..13d5a95 100644 --- a/vrobbler/apps/scrobbles/models.py +++ b/vrobbler/apps/scrobbles/models.py @@ -40,6 +40,7 @@ from videogames.models import VideoGame from videos.models import Series, Video from scrobbles.dataclasses import ( BoardGameMetadata, + JSONMetadata, LifeEventMetadata, ScrobbleMetadataDecoder, ScrobbleMetadataEncoder, @@ -606,7 +607,7 @@ class Scrobble(TimeStampedModel): ) @property - def metadata(self): + def metadata(self) -> Optional[JSONMetadata]: metadata_cls = None if self.media_type == self.MediaType.LIFE_EVENT: metadata_cls = LifeEventMetadata