Files
nuzlocke-tracker/backend/src/app/models/route_encounter.py
Julian Tabel e4111c67bc
All checks were successful
CI / backend-lint (push) Successful in 7s
CI / frontend-lint (push) Successful in 29s
Fix linting errors across backend and frontend
Backend: auto-fix and format all ruff issues, manually fix B904/B023/
SIM117/B007/E741/F841 errors, suppress B008 (FastAPI Depends) and F821
(SQLAlchemy forward refs) in config. Frontend: allow constant exports,
disable React compiler-specific rules (set-state-in-effect,
preserve-manual-memoization).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 12:26:57 +01:00

34 lines
1.3 KiB
Python

from sqlalchemy import ForeignKey, SmallInteger, String, UniqueConstraint
from sqlalchemy.orm import Mapped, mapped_column, relationship
from app.core.database import Base
class RouteEncounter(Base):
__tablename__ = "route_encounters"
__table_args__ = (
UniqueConstraint(
"route_id",
"pokemon_id",
"encounter_method",
"game_id",
name="uq_route_pokemon_method_game",
),
)
id: Mapped[int] = mapped_column(primary_key=True)
route_id: Mapped[int] = mapped_column(ForeignKey("routes.id"), index=True)
pokemon_id: Mapped[int] = mapped_column(ForeignKey("pokemon.id"), index=True)
game_id: Mapped[int] = mapped_column(ForeignKey("games.id"), index=True)
encounter_method: Mapped[str] = mapped_column(String(30))
encounter_rate: Mapped[int] = mapped_column(SmallInteger)
min_level: Mapped[int] = mapped_column(SmallInteger)
max_level: Mapped[int] = mapped_column(SmallInteger)
route: Mapped["Route"] = relationship(back_populates="route_encounters")
pokemon: Mapped["Pokemon"] = relationship(back_populates="route_encounters")
game: Mapped["Game"] = relationship()
def __repr__(self) -> str:
return f"<RouteEncounter(route_id={self.route_id}, pokemon_id={self.pokemon_id}, method='{self.encounter_method}')>"