diff options
Diffstat (limited to 'kitchen/serializers.py')
| -rw-r--r-- | kitchen/serializers.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/kitchen/serializers.py b/kitchen/serializers.py index 43eb9a7..0de5220 100644 --- a/kitchen/serializers.py +++ b/kitchen/serializers.py @@ -75,6 +75,47 @@ class MetaRecipeSerializer(serializers.ModelSerializer): fields = "__all__" +# --- Writable nested meta-recipe --- + + +class SlotOptionWriteSerializer(serializers.Serializer): + ingredient_name = serializers.CharField() + ingredient_id = serializers.IntegerField(required=False) + quantity_per_serving = serializers.DecimalField(max_digits=8, decimal_places=2) + unit = serializers.CharField() + notes = serializers.CharField(required=False, default="", allow_blank=True) + # For auto-creating ingredients + default_unit = serializers.CharField(required=False) + tags = serializers.ListField(child=serializers.CharField(), required=False, default=list) + shelf_life_days = serializers.IntegerField(required=False, allow_null=True, default=None) + + +class SlotWriteSerializer(serializers.Serializer): + name = serializers.CharField() + required = serializers.BooleanField(default=True) + max_choices = serializers.IntegerField(default=1) + options = SlotOptionWriteSerializer(many=True) + + +class BaseIngredientWriteSerializer(serializers.Serializer): + ingredient_name = serializers.CharField() + ingredient_id = serializers.IntegerField(required=False) + quantity_per_serving = serializers.DecimalField(max_digits=8, decimal_places=2) + unit = serializers.CharField() + + +class MetaRecipeWriteSerializer(serializers.Serializer): + name = serializers.CharField() + method = serializers.CharField() + prep_time_mins = serializers.IntegerField(required=False, allow_null=True, default=None) + cook_time_mins = serializers.IntegerField(required=False, allow_null=True, default=None) + default_servings = serializers.IntegerField(default=2) + gear_needed = serializers.CharField(required=False, default="", allow_blank=True) + tags = serializers.ListField(child=serializers.CharField(), required=False, default=list) + slots = SlotWriteSerializer(many=True, required=False, default=list) + base_ingredients = BaseIngredientWriteSerializer(many=True, required=False, default=list) + + # --- Fixed Recipe nested serializers --- |
