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}';
  }
}
