from rio import Column, Component, event, TextStyle, Text, Spacer

from src.ezgg_lan_manager import ConfigurationService
from src.ezgg_lan_manager.components.MainViewContentBox import MainViewContentBox

RULES: list[str] = [
    "Den Anweisungen der Turnierleitung ist stets Folge zu leisten.",
    "Teilnehmer müssen aktiv dafür sorgen, dass Spiele ohne Verzögerungen stattfinden.",
    "Unvollständige Teams werden ggf. zum Turnierstart entfernt.",
    "Verzögerungen und Ausfälle sind er Turnierleitung sofort zu melden.",
    "Jeder Spieler erstellt Screenshots am Rundenende zur Ergebnisdokumentation.",
    "Der Verlierer trägt das Ergebnis ein, der Gewinner überprüft es.",
    "Bei fehlendem oder falschem Ergebnis, ist sofort die Turnierorganisation zu informieren.",
    "Von 02:00–11:00 Uhr besteht keine Spielpflicht",
    "Täuschung, Falschangaben sowie Bugusing und Cheaten führen zur sofortigen Disqualifikation."
]

class TournamentRulesPage(Component):
    @event.on_populate
    async def on_populate(self) -> None:
        await self.session.set_title(f"{self.session[ConfigurationService].get_lan_info().name} - Turnierregeln")

    def build(self) -> Component:
        return Column(
            MainViewContentBox(
                Column(
                    Text(
                        text="Turnierregeln",
                        style=TextStyle(
                            fill=self.session.theme.background_color,
                            font_size=1.2
                        ),
                        margin_top=2,
                        margin_bottom=2,
                        align_x=0.5
                    ),
                    *[Text(
                        f"{idx + 1}. {rule}",
                        style=TextStyle(
                            fill=self.session.theme.background_color,
                            font_size=0.9
                        ),
                        margin_bottom=0.8,
                        margin_left=1,
                        margin_right=1,
                        overflow="wrap"
                    ) for idx, rule in enumerate(RULES)],
                    Spacer(min_height=1)
                )
            ),
            Spacer(grow_y=True)
        )
