meal_category.dart

 avatar
user_0176460
plain_text
9 months ago
4.2 kB
29
Indexable
import 'package:flutter/material.dart';

class MealCategory {
  final String name;
  final IconData? icon;
  final Color color;

  MealCategory({required this.name, this.icon, required this.color});
}

class MealCategories {
  static List<MealCategory> getAllCategories() {
    return [
      // Daily Meals
      MealCategory(
        name: 'Breakfast',
        icon: Icons.free_breakfast,
        color: Colors.brown,
      ),
      MealCategory(
        name: 'Brunch',
        icon: Icons.brunch_dining,
        color: Colors.orange,
      ),
      MealCategory(
        name: 'Lunch',
        icon: Icons.lunch_dining,
        color: Colors.green,
      ),
      MealCategory(
        name: 'Dinner',
        icon: Icons.dinner_dining,
        color: Colors.blue,
      ),
      MealCategory(name: 'Dessert', icon: Icons.cake, color: Colors.pink),
      MealCategory(name: 'Snack', icon: Icons.cookie, color: Colors.amber),

      // Course Types
      MealCategory(name: 'Appetizer', icon: Icons.tapas, color: Colors.purple),
      MealCategory(
        name: 'Main Course',
        icon: Icons.restaurant,
        color: Colors.red,
      ),
      MealCategory(
        name: 'Side Dish',
        icon: Icons.rice_bowl,
        color: Colors.teal,
      ),
      MealCategory(
        name: 'Soup',
        icon: Icons.soup_kitchen,
        color: Colors.deepOrange,
      ),
      MealCategory(name: 'Salad', icon: Icons.eco, color: Colors.lightGreen),
      MealCategory(
        name: 'Beverage',
        icon: Icons.local_cafe,
        color: Colors.brown[700]!,
      ),

      // Special Categories
      MealCategory(
        name: 'Comfort Food',
        icon: Icons.favorite,
        color: Colors.red[300]!,
      ),
      MealCategory(
        name: 'Quick & Easy',
        icon: Icons.timer,
        color: Colors.blue[300]!,
      ),
      MealCategory(
        name: 'Healthy',
        icon: Icons.fitness_center,
        color: Colors.green[300]!,
      ),
      MealCategory(
        name: 'Party Food',
        icon: Icons.celebration,
        color: Colors.purple[300]!,
      ),
      MealCategory(
        name: 'Kids-Friendly',
        icon: Icons.child_care,
        color: Colors.indigo[300]!,
      ),

      // Dietary Preferences
      MealCategory(
        name: 'Vegetarian',
        icon: Icons.eco,
        color: Colors.green[600]!,
      ),
      MealCategory(name: 'Vegan', icon: Icons.spa, color: Colors.green[800]!),
      MealCategory(
        name: 'Gluten-Free',
        icon: Icons.no_food,
        color: Colors.grey[600]!,
      ),
      MealCategory(name: 'Keto', icon: Icons.egg, color: Colors.yellow[800]!),

      // Cooking Methods
      MealCategory(
        name: 'Grilled',
        icon: Icons.outdoor_grill,
        color: Colors.red[700]!,
      ),
      MealCategory(
        name: 'Baked',
        icon: Icons.bakery_dining,
        color: Colors.brown[600]!,
      ),
      MealCategory(
        name: 'Slow Cooker',
        icon: Icons.slow_motion_video,
        color: Colors.blueGrey,
      ),
      MealCategory(name: 'Air Fryer', icon: Icons.air, color: Colors.cyan),
      MealCategory(name: 'One-Pot', icon: Icons.aod, color: Colors.grey[700]!),

      // Cuisine Types
      MealCategory(
        name: 'Italian',
        icon: Icons.local_pizza,
        color: Colors.red[400]!,
      ),
      MealCategory(name: 'Mexican', icon: Icons.eco, color: Colors.red[600]!),
      MealCategory(
        name: 'Asian',
        icon: Icons.ramen_dining,
        color: Colors.orange[700]!,
      ),
      MealCategory(
        name: 'Mediterranean',
        icon: Icons.set_meal,
        color: Colors.blue[600]!,
      ),
      MealCategory(
        name: 'Indian',
        icon: Icons.kebab_dining,
        color: Colors.deepOrange[600]!,
      ),
    ];
  }

  static MealCategory? findByName(String name) {
    try {
      return getAllCategories().firstWhere((category) => category.name == name);
    } catch (e) {
      return null;
    }
  }
}
Editor is loading...
Leave a Comment