MIF_E31222656/lib/screens/community/models/farming_guide_model.dart

88 lines
2.3 KiB
Dart

import 'package:flutter/material.dart';
class FarmingGuideModel {
final String id;
final String title;
final String content;
final String category;
final String? imageUrl;
final DateTime createdAt;
FarmingGuideModel({
required this.id,
required this.title,
required this.content,
required this.category,
this.imageUrl,
DateTime? createdAt,
}) : createdAt = createdAt ?? DateTime.now();
// Factory constructor untuk membuat model dari JSON/Map
factory FarmingGuideModel.fromMap(Map<String, dynamic> map) {
return FarmingGuideModel(
id: map['id'] ?? '',
title: map['title'] ?? 'Tanpa Judul',
content: map['content'] ?? '',
category: map['category'] ?? 'Umum',
imageUrl: map['image_url'],
createdAt:
map['created_at'] != null
? DateTime.parse(map['created_at'])
: DateTime.now(),
);
}
// Method untuk mengkonversi model ke JSON/Map
Map<String, dynamic> toMap() {
return {
'id': id,
'title': title,
'content': content,
'category': category,
'image_url': imageUrl,
'created_at': createdAt.toIso8601String(),
};
}
// Helper untuk mendapatkan warna berdasarkan kategori
Color getCategoryColor() {
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
case 'kalender tanam':
return const Color(0xFF2196F3); // Blue
default:
return const Color(0xFF0F6848); // Default green
}
}
// Helper untuk mendapatkan icon berdasarkan kategori
IconData getCategoryIcon() {
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;
case 'kalender tanam':
return Icons.calendar_month;
default:
return Icons.menu_book;
}
}
// Helper untuk format tanggal
String getFormattedDate() {
return '${createdAt.day}/${createdAt.month}/${createdAt.year}';
}
}