st-ten-1/src/lib/db/models/recipes.py

30 lines
942 B
Python
Raw Normal View History

2022-06-01 16:37:19 +00:00
from peewee import AutoField, BooleanField, TextField
from playhouse.sqlite_ext import JSONField
from .base_model import BaseModel
2022-07-19 09:59:00 +00:00
from .steps import Steps
2022-06-01 16:37:19 +00:00
class Recipes(BaseModel):
id = AutoField(primary_key=True, unique=True, null=False)
2022-07-26 13:43:11 +00:00
name = TextField(null=True)
client = TextField(null=True)
2022-07-19 09:59:00 +00:00
part_number = TextField(null=False)
2022-06-01 16:37:19 +00:00
spec = JSONField(null=False) # keys inside spec must not overlap withthe model
2022-07-26 13:43:11 +00:00
description = TextField(null=True)
2022-06-01 16:37:19 +00:00
archived = BooleanField(null=False, default=False)
2022-07-19 09:59:00 +00:00
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]
2022-06-01 16:37:19 +00:00
@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"