from datetime import datetime, timezone

from app.config import PREMIUM_STATUSES


def is_premium(status: str, expiry_date: str = "") -> bool:
    """Check if a subscription status qualifies as premium."""
    if status in PREMIUM_STATUSES:
        return True
    # Canceled but not yet expired = still premium
    if status == "canceled" and expiry_date:
        return expiry_date > datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
    return False
