"""Quiet hours for automated WhatsApp sends (IST)."""

from __future__ import annotations

from datetime import datetime
from zoneinfo import ZoneInfo

from app.core.config import get_settings


def is_quiet_hours(now: datetime | None = None) -> bool:
    settings = get_settings()
    tz = ZoneInfo(settings.timezone)
    current = now.astimezone(tz) if now else datetime.now(tz)
    hour = current.hour
    start = settings.whatsapp_quiet_hours_start
    end = settings.whatsapp_quiet_hours_end

    if start == end:
        return False
    if start < end:
        return start <= hour < end
    return hour >= start or hour < end
