from __future__ import annotations

from datetime import datetime

from dateutil import tz

from app.config import get_settings


def app_tz():
    return tz.gettz(get_settings().timezone)


def now_app() -> datetime:
    return datetime.now(app_tz())


def format_dt(dt: datetime) -> str:
    if dt.tzinfo is None:
        dt = dt.replace(tzinfo=app_tz())
    else:
        dt = dt.astimezone(app_tz())
    return dt.strftime("%Y-%m-%d %H:%M:%S")
