from __future__ import annotations

from datetime import date, datetime, time, timezone
from types import SimpleNamespace
from zoneinfo import ZoneInfo

from gateway.platforms.telegram import TelegramAdapter


def test_daily_task_authority_is_timezone_representation_independent() -> None:
    task = SimpleNamespace(kst_day=date(2026, 7, 21))
    customer = SimpleNamespace(
        spec=SimpleNamespace(
            enabled=True,
            plan=SimpleNamespace(starts_on=date(2026, 7, 1)),
            schedule=SimpleNamespace(daily_time=time(8)),
        )
    )
    utc_now = datetime(2026, 7, 20, 23, 17, tzinfo=timezone.utc)
    kst_now = utc_now.astimezone(ZoneInfo("Asia/Seoul"))

    assert utc_now == kst_now
    assert TelegramAdapter._nutrition_daily_task_is_current(
        task,
        customer,
        utc_now,
    )
    assert TelegramAdapter._nutrition_daily_task_is_current(
        task,
        customer,
        kst_now,
    )
