st-ten-1/src/lib/db/models/recipes.py
matteo porta 0b15405d6e wip
2022-07-20 18:53:06 +02:00

30 lines
945 B
Python

from peewee import AutoField, BooleanField, TextField
from playhouse.sqlite_ext import JSONField
from .base_model import BaseModel
from .steps import Steps
class Recipes(BaseModel):
id = AutoField(primary_key=True, unique=True, null=False)
name = TextField(null=False)
client = TextField(null=False)
part_number = TextField(null=False)
spec = JSONField(null=False) # keys inside spec must not overlap withthe model
description = TextField(null=False)
archived = BooleanField(null=False, default=False)
def get_steps(self):
s_ids = self.spec.get("steps", [])
s = {s.id: s for s in Steps.select().where(Steps.id << s_ids)}
return [s[s_id] for s_id in s_ids]
@classmethod
def delete(cls, *args, **kwargs):
# OVERRIDE DELETION
# so that deleting a user will only archive it
return cls.update(archived=True)
class Meta:
table_name = "recipes"