diff --git a/src/ohmyapi/db/model/model.py b/src/ohmyapi/db/model/model.py index 929ff60..7ab918f 100644 --- a/src/ohmyapi/db/model/model.py +++ b/src/ohmyapi/db/model/model.py @@ -31,6 +31,18 @@ UUID.__get_pydantic_core_schema__ = classmethod(__uuid_schema_monkey_patch) class ModelMeta(type(TortoiseModel)): def __new__(mcls, name, bases, attrs): + meta = attrs.get("Meta", None) + if meta is None: + class Meta: + pass + meta = Meta + attrs["Meta"] = meta + + if not hasattr(meta, "table"): + # Use first part of module as app_label + app_label = attrs.get("__module__", "").replace("ohmyapi.builtin.", "ohmyapi_").split(".")[0] + setattr(meta, "table", f"{app_label}_{name.lower()}") + # Grab the Schema class for further processing. schema_opts = attrs.get("Schema", None)