#!/usr/bin/env python3
"""
Swirl Master — Seed Recipes Generator
Genereert seed_recipes.json vanuit de ingebouwde recepten database.
Dit script haalt de recepten uit app.js en schrijft ze als JSON.
"""

import json
import re
import os

# Deze recepten worden direct in de SQLite database geladen bij opstarten.
# Ze komen overeen met de RECIPES array in app.js.

SEED_RECIPES = [
    {
        "id": "ic-vanilla", "type": "ice_cream", "name": "Klassieke Vanille IJs",
        "emoji": "🍨", "description": "De ultieme basis. Romig, zoet en perfect vanille.",
        "difficulty": "Beginner", "difficultyScore": 1, "prepTime": "10 min",
        "freezeTime": "24u", "totalTime": "24u 10m", "servings": 4,
        "rating": 4.9, "popularity": 100, "tags": ["beginner"], "diet": [],
        "program": "Ice Cream",
        "ingredients": ["2 kopjes zware room (473ml)", "1 kopje volle melk (237ml)", "⅔ kopje suiker (133g)", "1 el vanille-extract", "1 tl vanille pasta (optioneel)"],
        "steps": ["Mix alle ingrediënten tot suiker oplost.", "Giet in Ninja Swirl pint, laat 2,5 cm ruimte.", "Vries 24 uur.", "Verwerk op Ice Cream.", "RE-SPIN met melk indien te hard.", "Serveer direct."],
        "mixins": ["Chocolade stukjes", "Noten", "Vers fruit", "Caramel saus"],
        "nutrition": {"calories": 320, "fat": "22g", "carbs": "28g", "protein": "4g"},
        "tips": "Gebruik echte vanille pasta voor zichtbare zaadjes."
    },
    {
        "id": "ic-chocolate", "type": "ice_cream", "name": "Death By Chocolate IJs",
        "emoji": "🍫", "description": "Intens chocolade voor de echte chocoholic.",
        "difficulty": "Beginner", "difficultyScore": 1, "prepTime": "15 min",
        "freezeTime": "24u", "totalTime": "24u 15m", "servings": 4,
        "rating": 4.9, "popularity": 95, "tags": ["beginner"], "diet": [],
        "program": "Ice Cream",
        "ingredients": ["2 kopjes zware room (473ml)", "1 kopje volle melk (237ml)", "⅔ kopje suiker (133g)", "⅓ kopje cacaopoeder (33g)", "1 tl vanille-extract", "Snufje zout"],
        "steps": ["Zeef cacaopoeder.", "Verwarm melk, los cacao en suiker op.", "Mix rest erdoor.", "Vries 24u.", "Verwerk op Ice Cream."],
        "mixins": ["Chocolade chunks", "Brownie stukjes", "Oreo koekjes"],
        "nutrition": {"calories": 340, "fat": "23g", "carbs": "32g", "protein": "5g"},
        "tips": "Voeg espresso-poeder toe voor diepere smaak."
    },
    {
        "id": "so-mango", "type": "sorbet", "name": "Mango Sorbet",
        "emoji": "🥭", "description": "Tropische, zijdezachte sorbet met 2 ingrediënten.",
        "difficulty": "Beginner", "difficultyScore": 1, "prepTime": "5 min",
        "freezeTime": "24u", "totalTime": "24u 5m", "servings": 4,
        "rating": 4.8, "popularity": 87, "tags": ["beginner","vegan","dairy_free","gluten_free"],
        "diet": ["vegan","dairy_free","gluten_free"], "program": "Sorbet",
        "ingredients": ["1 blik mango in sap (575g)", "2 el suiker (optioneel)", "1 el citroensap"],
        "steps": ["Blend mango met sap.", "Voeg suiker en citroen toe.", "Vries 24u.", "Verwerk op Sorbet."],
        "mixins": ["Lime zeste", "Chili vlokken", "Kokos rasp"],
        "nutrition": {"calories": 140, "fat": "0g", "carbs": "35g", "protein": "1g"},
        "tips": "Verse rijpe mango werkt fantastisch."
    },
    {
        "id": "ss-vanilla", "type": "soft_serve", "name": "Easy Vanilla Soft Serve",
        "emoji": "🍦", "description": "Klassieke zachte vanille — zoals de kermis.",
        "difficulty": "Beginner", "difficultyScore": 1, "prepTime": "10 min",
        "freezeTime": "24u", "totalTime": "24u 10m", "servings": 4,
        "rating": 4.8, "popularity": 91, "tags": ["beginner"], "diet": [],
        "program": "Soft Serve",
        "ingredients": ["2 kopjes zware room (473ml)", "1 kopje volle melk (237ml)", "⅔ kopje suiker (133g)", "2 tl vanille-extract", "Snufje zout"],
        "steps": ["Mix alle ingrediënten.", "Giet in pint met nozzle.", "Vries 24u.", "Verwerk op Soft Serve met swirl attachment."],
        "mixins": ["Chocolade saus", "Noten", "Sprinkles"],
        "nutrition": {"calories": 310, "fat": "22g", "carbs": "26g", "protein": "4g"},
        "tips": "Laat pint 2 min op aanrecht staan voor verwerking."
    },
    {
        "id": "fy-classic-tart", "type": "frozen_yogurt", "name": "Classic Tart Frozen Yogurt",
        "emoji": "🍦", "description": "Pinkberry-stijl tart fro-yo met 4 ingrediënten.",
        "difficulty": "Beginner", "difficultyScore": 1, "prepTime": "10 min",
        "freezeTime": "24u", "totalTime": "24u 10m", "servings": 4,
        "rating": 4.9, "popularity": 89, "tags": ["beginner"], "diet": [],
        "program": "Frozen Yogurt",
        "ingredients": ["1 pint (473ml) volle yoghurt", "¼ kopje karnemelk (60ml)", "2 el citroensap", "3 el suiker"],
        "steps": ["Mix alles glad.", "Vries 24u.", "Verwerk op Frozen Yogurt."],
        "mixins": ["Vers fruit", "Granola", "Chocolade chips"],
        "nutrition": {"calories": 170, "fat": "8g", "carbs": "18g", "protein": "8g"},
        "tips": "Karnemelk geeft de karakteristieke tartness."
    },
]

def main():
    output_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'seed_recipes.json')
    with open(output_path, 'w', encoding='utf-8') as f:
        json.dump(SEED_RECIPES, f, indent=2, ensure_ascii=False)
    print(f"✅ Seed recipes written to {output_path}")
    print(f"   {len(SEED_RECIPES)} recipes")

if __name__ == '__main__':
    main()
