2024-09-18 16:03:13 +00:00
|
|
|
import json
|
2022-09-07 15:24:40 +00:00
|
|
|
from uuid import uuid4 as uuid
|
|
|
|
|
|
|
|
|
|
from peewee import BooleanField, TextField
|
2022-06-01 16:37:19 +00:00
|
|
|
from playhouse.sqlite_ext import JSONField
|
|
|
|
|
|
|
|
|
|
from .base_model import BaseModel
|
2024-09-18 16:03:13 +00:00
|
|
|
from ...helpers.step import Step
|
2022-06-01 16:37:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Recipes(BaseModel):
|
2022-09-07 15:24:40 +00:00
|
|
|
name = TextField(primary_key=True, unique=True, null=False, default=lambda: uuid().hex)
|
2022-07-26 13:43:11 +00:00
|
|
|
client = TextField(null=True)
|
2022-07-19 09:59:00 +00:00
|
|
|
part_number = TextField(null=False)
|
2024-09-17 13:19:36 +00:00
|
|
|
spec = JSONField(null=False)
|
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):
|
2024-09-18 16:03:13 +00:00
|
|
|
steps = []
|
|
|
|
|
for step_name, enabled in self.spec.items():
|
|
|
|
|
if enabled in (True, 1):
|
|
|
|
|
steps.append(Step(step_type=step_name,spec=self.spec["steps"][step_name]))
|
|
|
|
|
return steps
|
2022-11-16 14:45:57 +00:00
|
|
|
|
2022-09-20 15:42:59 +00:00
|
|
|
def get_steps_map(self):
|
2024-09-18 16:03:13 +00:00
|
|
|
steps = {}
|
|
|
|
|
for step_name, step_pk in self.spec.get("available_steps", {}).items():
|
|
|
|
|
steps[step_name] = Step(step_type=step_name,spec=self.spec["steps"][step_name])
|
|
|
|
|
return steps
|
2022-07-19 09:59:00 +00:00
|
|
|
|
2022-11-16 14:45:57 +00:00
|
|
|
@classmethod
|
|
|
|
|
def crud_delete(cls, deleted_rows):
|
|
|
|
|
recipes = list(cls.select().where(cls._meta.primary_key << deleted_rows).execute())
|
|
|
|
|
for recipe in recipes:
|
|
|
|
|
recipe.delete_instance()
|
|
|
|
|
return len(recipes)
|
|
|
|
|
|
2022-06-01 16:37:19 +00:00
|
|
|
class Meta:
|
|
|
|
|
table_name = "recipes"
|