diff --git a/src/ohmyapi/db/model/model.py b/src/ohmyapi/db/model/model.py index d005e43..eb0b504 100644 --- a/src/ohmyapi/db/model/model.py +++ b/src/ohmyapi/db/model/model.py @@ -12,7 +12,7 @@ class ModelMeta(type(TortoiseModel)): class BoundSchema: @property def model(self): - """Return a Pydantic model class for 'one' results.""" + """Return a Pydantic model class for serializing results.""" include = getattr(schema_opts, "include", None) exclude = getattr(schema_opts, "exclude", None) return pydantic_model_creator( @@ -20,6 +20,18 @@ class ModelMeta(type(TortoiseModel)): name=f"{new_cls.__name__}Schema", include=include, exclude=exclude, + ) + + @property + def readonly(self): + """Return a Pydantic model class for serializing readonly results.""" + include = getattr(schema_opts, "include", None) + exclude = getattr(schema_opts, "exclude", None) + return pydantic_model_creator( + new_cls, + name=f"{new_cls.__name__}SchemaReadonly", + include=include, + exclude=exclude, exclude_readonly=True, )