from __future__ import annotations

from datetime import datetime, timezone
from typing import Optional


def utc_now() -> datetime:
    """Return a naive UTC datetime for consistent SQLite storage/comparison."""
    return datetime.now(timezone.utc).replace(tzinfo=None)


def as_utc_naive(value: Optional[datetime]) -> Optional[datetime]:
    """Normalize aware datetimes to naive UTC; leave naive values unchanged."""
    if value is None:
        return None
    if value.tzinfo is None or value.utcoffset() is None:
        return value
    return value.astimezone(timezone.utc).replace(tzinfo=None)
