from fooder.context import Context from fooder.controller.base import ModelController from fooder.domain import Preset from fooder.model.preset import PresetUpdateModel class PresetController(ModelController[Preset]): @classmethod async def create(cls, ctx: Context, name: str) -> "PresetController": obj = Preset(name=name, user_id=ctx.user.id) await ctx.repo.preset.create(obj) return cls(ctx, obj) async def update(self, data: PresetUpdateModel) -> None: if data.name is not None: self.obj.name = data.name await self.ctx.repo.preset.update(self.obj)