diff --git a/nerdd_backend/data/module.py b/nerdd_backend/data/module.py new file mode 100644 index 0000000..df12713 --- /dev/null +++ b/nerdd_backend/data/module.py @@ -0,0 +1,28 @@ +from typing import Any, Optional + +from nerdd_module.config import Module as NerddModule +from pydantic import model_validator + +__all__ = ["Module"] + + +class Module(NerddModule): + id: Optional[str] = None + + @model_validator(mode="after") + @classmethod + def validate_model(cls, values: Any) -> Any: + assert isinstance(values, Module) + + module = super().validate_model(values) + + # TODO: incorporate versioning + # compute the primary key from name and version + # if "version" in module.keys(): + # version = module["version"] + # else: + # version = "1.0.0" + # name = module["name"] + module.id = module.name + + return module