feat: add tackle catalog and recommendation analytics
This commit is contained in:
@@ -40,6 +40,48 @@ class BaitOut(BaseModel):
|
||||
kind: str
|
||||
|
||||
|
||||
class TackleItemOut(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
id: UUID
|
||||
name: str
|
||||
category: str
|
||||
subcategory: str | None
|
||||
brand: str | None
|
||||
family: str | None
|
||||
unlock_level: int | None
|
||||
source_system: str | None
|
||||
source_external_id: str | None
|
||||
source_url: str | None
|
||||
source_checked_at: datetime | None
|
||||
missing_fields: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class PaginatedTackleItemOut(BaseModel):
|
||||
items: list[TackleItemOut]
|
||||
total: int
|
||||
limit: int
|
||||
offset: int
|
||||
|
||||
|
||||
class RigComponentOut(BaseModel):
|
||||
id: UUID
|
||||
role: str
|
||||
position: int
|
||||
raw_value: str | None
|
||||
tackle_item_id: UUID | None
|
||||
|
||||
|
||||
class RigOut(BaseModel):
|
||||
id: UUID
|
||||
name: str
|
||||
source_system: str | None
|
||||
source_external_id: str | None
|
||||
source_url: str | None
|
||||
source_checked_at: datetime | None
|
||||
missing_fields: list[str] = Field(default_factory=list)
|
||||
components: list[RigComponentOut]
|
||||
|
||||
|
||||
class ActivityOut(BaseModel):
|
||||
spot_id: UUID
|
||||
waterbody_slug: str
|
||||
@@ -69,6 +111,16 @@ class PaginatedActivityOut(BaseModel):
|
||||
offset: int
|
||||
|
||||
|
||||
class TackleCombinationOut(BaseModel):
|
||||
role: str
|
||||
value: str
|
||||
catches: int
|
||||
unique_players: int
|
||||
last_seen_at: datetime
|
||||
status: str
|
||||
explanation: str
|
||||
|
||||
|
||||
class CatchOut(BaseModel):
|
||||
id: UUID
|
||||
fish: str
|
||||
@@ -81,6 +133,18 @@ class CatchOut(BaseModel):
|
||||
retrieve_speed: int | None
|
||||
source_system: str
|
||||
source_url: str | None
|
||||
tackle_components: list["CatchTackleComponentOut"]
|
||||
|
||||
|
||||
class CatchTackleComponentOut(BaseModel):
|
||||
id: UUID
|
||||
role: str
|
||||
position: int
|
||||
raw_value: str
|
||||
tackle_item_id: UUID | None
|
||||
rig_id: UUID | None
|
||||
source_system: str | None
|
||||
source_url: str | None
|
||||
|
||||
|
||||
class SpotOut(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user