import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/exercise_device.dart';
import 'package:aitrainer_app/service/exercise_device_service.dart';

class ExerciseDeviceRepository {
  List<ExerciseDevice> _devices = List();

  List<ExerciseDevice> getDevices() {
    return this._devices;
  }

  void setDevices(List<ExerciseDevice> list) {
    _devices = list;
  }

  Future<List<ExerciseDevice>> getDBDevices() async {
    this._devices = await ExerciseDeviceApi().getDevices();
    return this._devices;
  }

  bool isGym(int deviceId) {
    bool isGym = false;
    _devices.forEach((element) {
      isGym = isGymElement(element.name);
    });
    return isGym;
  }

  bool isGymElement(String name) {
    return name == "Cable" || name == "Baar" || name == "Gym Machine" || name == "Dumbbells" || name == "Barbell";
  }

  List<ExerciseDevice> getGymDevices() {
    final List<ExerciseDevice> gymDevices = List();
    if (_devices == null || _devices.isEmpty) {
      _devices = Cache().getDevices();
    }
    _devices.forEach((element) {
      if (isGymElement(element.name)) {
        gymDevices.add(element);
      }
    });
    return gymDevices;
  }
}