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

from playwright.sync_api import Page


OFFICESITE_URL = "https://office.aroflo.com/ims/Site/Home/index.cfm?siteswitch=office&view=1"


def _is_officesite_url(url: str) -> bool:
    u = (url or "").lower()
    return "/ims/site/" in u or "siteswitch=office" in u


def ensure_officesite(page: Page, *, force: bool = False, timeout_ms: int = 30_000) -> None:
    """
    Asegura que estemos en OfficeSite.
    Si no lo estamos (o force=True), navega directamente al URL OfficeSite.
    """
    if not force and _is_officesite_url(page.url):
        return

    page.goto(OFFICESITE_URL, wait_until="domcontentloaded")
    page.wait_for_function(
        "() => location.href.toLowerCase().includes('siteswitch=office') || location.href.toLowerCase().includes('/ims/site/')",
        timeout=timeout_ms,
    )
