2025-06-08 21:57:05 +00:00

24 lines
643 B
Python

"""Base class for SQLAlchemy models."""
import datetime
from typing import Any
from sqlalchemy import Column, DateTime
from sqlalchemy.ext.declarative import declared_attr
class Base:
"""Base class for SQLAlchemy models."""
# Generate __tablename__ automatically
@declared_attr
def __tablename__(cls) -> str:
return cls.__name__.lower()
# Common columns for all models
created_at = Column(DateTime, default=datetime.datetime.utcnow, nullable=False)
updated_at = Column(
DateTime,
default=datetime.datetime.utcnow,
onupdate=datetime.datetime.utcnow,
nullable=False,
)