101 lines
1.9 KiB
Python
101 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
class FishOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: UUID
|
|
slug: str
|
|
name_ru: str
|
|
trophy_weight_g: int | None
|
|
|
|
|
|
class WaterbodyOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: UUID
|
|
slug: str
|
|
name_ru: str
|
|
unlock_level: int | None
|
|
|
|
|
|
class BaitOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: UUID
|
|
name: str
|
|
normalized_name: str
|
|
kind: str
|
|
|
|
|
|
class ActivityOut(BaseModel):
|
|
spot_id: UUID
|
|
waterbody_slug: str
|
|
waterbody: str
|
|
fish_slug: str
|
|
fish: str
|
|
x: int
|
|
y: int
|
|
best_bait: str | None
|
|
catches: int
|
|
unique_players: int
|
|
average_weight_g: int
|
|
max_weight_g: int
|
|
last_confirmed_at: datetime
|
|
activity_score: int
|
|
confidence_score: int
|
|
explanation: str
|
|
|
|
|
|
class CatchOut(BaseModel):
|
|
id: UUID
|
|
fish: str
|
|
weight_g: int
|
|
bait: str | None
|
|
player_name: str | None
|
|
caught_at: datetime | None
|
|
reported_at: datetime
|
|
retrieve_method: str | None
|
|
retrieve_speed: int | None
|
|
|
|
|
|
class SpotOut(BaseModel):
|
|
id: UUID
|
|
waterbody_slug: str
|
|
waterbody: str
|
|
x: int
|
|
y: int
|
|
description: str | None
|
|
catches_24h: int
|
|
catches_3d: int
|
|
catches_7d: int
|
|
top_baits: list[str]
|
|
|
|
|
|
class OfficialRecordOut(BaseModel):
|
|
id: UUID
|
|
fish: str
|
|
weight_g: int
|
|
waterbody: str
|
|
bait: str | None
|
|
player_name: str | None
|
|
record_date: datetime | None
|
|
category: str | None
|
|
region: str | None
|
|
source_url: str | None
|
|
|
|
|
|
class ImportRunOut(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
id: UUID
|
|
started_at: datetime
|
|
finished_at: datetime | None
|
|
status: str
|
|
source_url: str
|
|
rows_seen: int
|
|
rows_created: int
|
|
rows_updated: int
|
|
error_summary: str | None
|