import logging from typing import Any, Dict, Optional logger = logging.getLogger("mealie-mcp") class FoodMixin: """Mixin for Mealie food and unit API operations.""" def get_foods( self, search: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None, ) -> Dict[str, Any]: """Get list of foods.""" params = {} if search: params["search"] = search if page: params["page"] = page if per_page: params["perPage"] = per_page logger.info({"message": "Retrieving foods", "parameters": params}) return self._handle_request("GET", "/api/foods", params=params) def get_units(self) -> Dict[str, Any]: """Get list of all units.""" logger.info({"message": "Retrieving units"}) return self._handle_request("GET", "/api/units") def create_food(self, name: str, description: Optional[str] = None) -> Dict[str, Any]: """Create a new food item.""" data = {"name": name} if description: data["description"] = description logger.info({"message": "Creating food", "name": name}) return self._handle_request("POST", "/api/foods", json=data) def create_unit(self, name: str, abbreviation: Optional[str] = None) -> Dict[str, Any]: """Create a new unit.""" data = {"name": name} if abbreviation: data["abbreviation"] = abbreviation logger.info({"message": "Creating unit", "name": name}) return self._handle_request("POST", "/api/units", json=data)