import 'package:digiplug/core/navigation/navigator.dart';
import 'package:flutter/material.dart';

// Enum untuk mendefinisikan semua jenis perangkat yang mungkin ada
enum DeviceType {
  ac,
  smartTv,
  cctv,
  refridgerator,
  microwave,
  light,
  plug,
}

// Extension untuk menambahkan fungsionalitas tambahan pada enum DeviceType
extension DeviceTypeExtension on DeviceType {
  // Mengembalikan nama yang mudah dibaca untuk setiap tipe perangkat
  String get name {
    switch (this) {
      case DeviceType.ac:
        return 'AC';
      case DeviceType.smartTv:
        return 'Smart TV';
      case DeviceType.cctv:
        return 'CCTV';
      case DeviceType.refridgerator:
        return 'Kulkas';
      case DeviceType.microwave:
        return 'Microwave';
      case DeviceType.light:
        return 'Lampu';
      case DeviceType.plug:
        return 'DigiPlug';
    }
  }

  // Mengembalikan path aset ikon atau objek IconData untuk setiap tipe perangkat
  dynamic get icon {
    switch (this) {
      case DeviceType.ac:
        return 'assets/icons/ac.png';
      case DeviceType.smartTv:
        return 'assets/icons/tv.png';
      case DeviceType.cctv:
        return 'assets/icons/cctv.png';
      case DeviceType.refridgerator:
        return 'assets/icons/fridge.png';
      case DeviceType.microwave:
        return 'assets/icons/oven.png';
      case DeviceType.light:
        return 'assets/icons/light.png';
      case DeviceType.plug:
        // Menggunakan SVG untuk fleksibilitas
        return 'assets/icons/plug.svg';
    }
  }

  // Mengembalikan nama rute yang sesuai untuk navigasi saat kartu perangkat di-tap
  String get routeName {
    switch (this) {
      case DeviceType.ac:
        return acRoute;
      case DeviceType.smartTv:
        return smartTvRoute;
      case DeviceType.light:
        return lightRoute;
      case DeviceType.plug:
        return digiPlugDetailRoute;
      // Untuk perangkat yang tidak memiliki halaman detail khusus,
      // kita bisa arahkan ke rute yang sama atau rute placeholder.
      default:
        return digiPlugDetailRoute;
    }
  }
}
