package models import "time" // Ingredient represents a food ingredient type Ingredient struct { ID int `json:"id"` Name string `json:"name"` Unit string `json:"unit"` // e.g., "grams", "ml", "cups", "pieces", "tbsp" } // Meal represents a meal recipe type Meal struct { ID int `json:"id"` Name string `json:"name"` Description string `json:"description"` MealType string `json:"meal_type"` // "breakfast", "lunch", "snack" } // MealIngredient represents an ingredient in a meal with its quantity type MealIngredient struct { MealID int `json:"meal_id"` IngredientID int `json:"ingredient_id"` Quantity float64 `json:"quantity"` // Joined fields IngredientName string `json:"ingredient_name,omitempty"` Unit string `json:"unit,omitempty"` } // WeekPlanEntry represents a meal planned for a specific date type WeekPlanEntry struct { ID int `json:"id"` Date time.Time `json:"date"` MealID int `json:"meal_id"` MealName string `json:"meal_name,omitempty"` MealType string `json:"meal_type,omitempty"` // "breakfast", "lunch", "snack" } // GroceryItem represents an aggregated ingredient for shopping type GroceryItem struct { IngredientName string `json:"ingredient_name"` TotalQuantity float64 `json:"total_quantity"` Unit string `json:"unit"` }