netadm/models/base.py

21 lines
532 B
Python

from sqlalchemy import MetaData
from sqlalchemy.orm import DeclarativeBase
from sqlalchemy.orm import Mapped
from sqlalchemy.orm import mapped_column
from sqlalchemy.orm import declared_attr
from config import settings
from utils import camel_case_to_snake_case
class Base(DeclarativeBase):
__abstract__ = True
metadata = MetaData(
naming_convention=settings.db.naming_convention,
)
@declared_attr.directive
def __tablename__(cls) -> str:
return f"{camel_case_to_snake_case(cls.__name__)}s"