"""Selectors/helpers for SiteAdministration context."""
from __future__ import annotations

from playwright.sync_api import Page


SITEADMIN_URL = "https://office.aroflo.com/ims/siteAdmin/Organisations/index.cfm?siteswitch=office_siteadmin&view=1"


def _is_siteadmin_url(url: str) -> bool:
    u = (url or "").lower()
    return "/ims/siteadmin/" in u or "siteswitch=office_siteadmin" in u


def ensure_siteadministration(page: Page, *, force: bool = False, timeout_ms: int = 30_000) -> None:
    """
    Asegura que estemos en SiteAdministration.
    """
    if not force and _is_siteadmin_url(page.url):
        return

    page.goto(SITEADMIN_URL, wait_until="domcontentloaded")
    page.wait_for_function(
        "() => location.href.toLowerCase().includes('siteswitch=office_siteadmin') || location.href.toLowerCase().includes('/ims/siteadmin/')",
        timeout=timeout_ms,
    )
