kirche-einfach/backend/app/models/base.py

18 lines
466 B
Python

"""Shared SQLModel base: UTC timestamps, no copy-paste across models."""
from datetime import UTC, datetime
from sqlalchemy import Column, DateTime
from sqlmodel import Field
def utcnow() -> datetime:
return datetime.now(UTC)
def ts_column() -> Column:
return Column(DateTime(timezone=True))
def ts_field(*, default_factory=utcnow) -> datetime: # type: ignore[no-untyped-def]
return Field(default_factory=default_factory, sa_column=ts_column())