import 'package:flutter/material.dart'; /// Utilitas untuk mengkategorikan tanaman berdasarkan nama atau deskripsinya class PlantCategorizer { // Kategori utama static const String TANAMAN_PANGAN = 'Tanaman Pangan'; static const String SAYURAN = 'Sayuran'; static const String BUAH_BUAHAN = 'Buah-buahan'; static const String REMPAH = 'Rempah'; static const String UMUM = 'Umum'; // Daftar tanaman pangan static final List _tanamanPangan = [ 'padi', 'beras', 'jagung', 'gandum', 'kedelai', 'kacang tanah', 'kacang kedelai', 'kacang hijau', 'ubi', 'ubi kayu', 'singkong', 'ubi jalar', 'talas', 'sorghum', 'jewawut', ]; // Daftar sayuran static final List _sayuran = [ 'bayam', 'kangkung', 'sawi', 'selada', 'kubis', 'kol', 'brokoli', 'wortel', 'tomat', 'terong', 'timun', 'ketimun', 'mentimun', 'labu', 'kacang panjang', 'buncis', 'pare', 'daun singkong', 'daun pepaya', 'kemangi', 'selada air', 'asparagus', 'bawang', 'kentang', 'cabai', 'paprika', 'lobak', 'bit', 'seledri', ]; // Daftar buah-buahan static final List _buahBuahan = [ 'mangga', 'jeruk', 'pisang', 'pepaya', 'jambu', 'jambu biji', 'jambu air', 'apel', 'anggur', 'manggis', 'durian', 'rambutan', 'alpukat', 'semangka', 'melon', 'pir', 'strawberry', 'nangka', 'sirsak', 'sawo', 'salak', 'markisa', 'belimbing', ]; // Daftar rempah-rempah static final List _rempah = [ 'jahe', 'kunyit', 'lengkuas', 'sereh', 'kemangi', 'daun salam', 'daun jeruk', 'kayu manis', 'cengkeh', 'pala', 'lada', 'merica', 'ketumbar', 'jintan', 'kemiri', 'kapulaga', 'vanili', 'temulawak', 'kencur', 'bawang putih', 'bawang merah', ]; /// Mengategorikan tanaman berdasarkan nama dan deskripsi static String categorize(String name, {String? description}) { final String text = '${name.toLowerCase()} ${description?.toLowerCase() ?? ''}'; // Cek kategori berdasarkan teks if (_containsAny(text, _tanamanPangan)) { return TANAMAN_PANGAN; } else if (_containsAny(text, _sayuran)) { return SAYURAN; } else if (_containsAny(text, _buahBuahan)) { return BUAH_BUAHAN; } else if (_containsAny(text, _rempah)) { return REMPAH; } // Default jika tidak ditemukan return UMUM; } /// Helper untuk mengecek apakah teks mengandung salah satu keyword static bool _containsAny(String text, List keywords) { for (final keyword in keywords) { if (text.contains(keyword)) { return true; } } return false; } /// Mendapatkan warna berdasarkan kategori static Color getCategoryColor(String category) { switch (category.toLowerCase()) { case 'tanaman pangan': return const Color(0xFF4CAF50); // Green case 'sayuran': return const Color(0xFF8BC34A); // Light Green case 'buah-buahan': return const Color(0xFFFF9800); // Orange case 'rempah': return const Color(0xFF795548); // Brown default: return const Color(0xFF0F6848); // Default green } } /// Mendapatkan icon berdasarkan kategori static IconData getCategoryIcon(String category) { switch (category.toLowerCase()) { case 'tanaman pangan': return Icons.grass; case 'sayuran': return Icons.eco; case 'buah-buahan': return Icons.local_florist; case 'rempah': return Icons.spa; default: return Icons.menu_book; } } }