Build Dockerized MVP scaffold and records importer
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
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
|
||||
Reference in New Issue
Block a user