Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from datetime import datetime, timezone | |
| from sqlalchemy import MetaData | |
| from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column | |
| NAMING_CONVENTION = { | |
| "ix": "ix_%(column_0_label)s", | |
| "uq": "uq_%(table_name)s_%(column_0_name)s", | |
| "ck": "ck_%(table_name)s_%(constraint_name)s", | |
| "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s", | |
| "pk": "pk_%(table_name)s", | |
| } | |
| class Base(DeclarativeBase): | |
| metadata = MetaData(naming_convention=NAMING_CONVENTION) | |
| class TimestampMixin: | |
| created_at: Mapped[datetime] = mapped_column(default=lambda: datetime.now(timezone.utc)) | |
| updated_at: Mapped[datetime] = mapped_column( | |
| default=lambda: datetime.now(timezone.utc), | |
| onupdate=lambda: datetime.now(timezone.utc), | |
| ) | |