Add section field to boss battles for run progression dividers
Adds a nullable `section` column to boss battles (e.g. "Main Story", "Endgame") with dividers rendered in the run view between sections. Admin UI gets a Section column in the table and a text input in the form. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""add section to boss battles
|
||||
|
||||
Revision ID: f5a6b7c8d9e0
|
||||
Revises: e4f5a6b7c8d9
|
||||
Create Date: 2026-02-08 20:00:00.000000
|
||||
|
||||
"""
|
||||
from typing import Sequence, Union
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = 'f5a6b7c8d9e0'
|
||||
down_revision: Union[str, Sequence[str], None] = 'e4f5a6b7c8d9'
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
op.add_column('boss_battles', sa.Column('section', sa.String(100), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_column('boss_battles', 'section')
|
||||
@@ -24,6 +24,7 @@ class BossBattle(Base):
|
||||
ForeignKey("routes.id"), index=True, default=None
|
||||
)
|
||||
location: Mapped[str] = mapped_column(String(200))
|
||||
section: Mapped[str | None] = mapped_column(String(100), default=None)
|
||||
sprite_url: Mapped[str | None] = mapped_column(String(500))
|
||||
|
||||
version_group: Mapped["VersionGroup"] = relationship(
|
||||
|
||||
@@ -23,6 +23,7 @@ class BossBattleResponse(CamelModel):
|
||||
order: int
|
||||
after_route_id: int | None
|
||||
location: str
|
||||
section: str | None
|
||||
sprite_url: str | None
|
||||
pokemon: list[BossPokemonResponse] = []
|
||||
|
||||
@@ -48,6 +49,7 @@ class BossBattleCreate(CamelModel):
|
||||
order: int
|
||||
after_route_id: int | None = None
|
||||
location: str
|
||||
section: str | None = None
|
||||
sprite_url: str | None = None
|
||||
|
||||
|
||||
@@ -60,6 +62,7 @@ class BossBattleUpdate(CamelModel):
|
||||
order: int | None = None
|
||||
after_route_id: int | None = None
|
||||
location: str | None = None
|
||||
section: str | None = None
|
||||
sprite_url: str | None = None
|
||||
|
||||
|
||||
@@ -75,6 +78,15 @@ class BossResultCreate(CamelModel):
|
||||
attempts: int = 1
|
||||
|
||||
|
||||
class BossReorderItem(CamelModel):
|
||||
id: int
|
||||
order: int
|
||||
|
||||
|
||||
class BossReorderRequest(CamelModel):
|
||||
bosses: list[BossReorderItem]
|
||||
|
||||
|
||||
class BossResultUpdate(CamelModel):
|
||||
result: str | None = None
|
||||
attempts: int | None = None
|
||||
|
||||
Reference in New Issue
Block a user