""" ⚙️ Haven Kitchen OS Configuration User preferences and system settings. """ import os import json from pathlib import Path from dataclasses import dataclass, field from dotenv import load_dotenv load_dotenv() @dataclass class SystemConfig: base_dir: Path = Path(__file__).parent.parent prefs_file: Path = base_dir / "user_preferences.json" # API Keys groq_key: str = os.getenv("GROQ_API_KEY") serper_key: str = os.getenv("SERPER_API_KEY") openai_api_key: str = os.getenv("OPENAI_API_KEY") elevenlabs_key: str = os.getenv("ELEVENLABS_API_KEY") # User Defaults user_name: str = "Friend" location: str = "Denver, CO" dietary_restrictions: str = "None" user_avatar: str = "👩🏻" meal_times: dict = field(default_factory=lambda: { "breakfast": {"start": "06:00 AM", "end": "10:00 AM"}, "lunch": {"start": "11:30 AM", "end": "02:00 PM"}, "dinner": {"start": "05:00 PM", "end": "08:00 PM"} }) def __post_init__(self): self.load_preferences() def load_preferences(self): if self.prefs_file.exists(): try: with open(self.prefs_file, 'r') as f: data = json.load(f) self.user_name = data.get("user_name", self.user_name) self.location = data.get("location", self.location) self.dietary_restrictions = data.get("dietary_restrictions", self.dietary_restrictions) self.meal_times = data.get("meal_times", self.meal_times) self.user_avatar = data.get("user_avatar", self.user_avatar) except: pass else: self.save_preferences() def save_preferences(self): data = { "user_name": self.user_name, "location": self.location, "dietary_restrictions": self.dietary_restrictions, "meal_times": self.meal_times, "user_avatar": self.user_avatar } with open(self.prefs_file, 'w') as f: json.dump(data, f, indent=4)