import 'package:aitrainer_app/model/customer.dart';
import 'package:aitrainer_app/model/exercise.dart';
import 'package:aitrainer_app/model/exercise_type.dart';
import 'package:aitrainer_app/service/exercise_service.dart';
import 'package:flutter/cupertino.dart';

import 'exercise_view_model.dart';

class ExerciseChangingViewModel with ChangeNotifier {
  Customer customer;
  ExerciseType exerciseType;
  List<ExerciseViewModel> exerciseList = List<ExerciseViewModel>();

  ExerciseViewModel exerciseViewModel = ExerciseViewModel();

  ExerciseChangingViewModel(exerciseViewModel) {
    this.exerciseViewModel = exerciseViewModel;
  }

  int quantity;

  setCustomer(Customer customer) {
    this.customer = customer;
    notifyListeners();
  }

  setExerciseType( ExerciseType exerciseType) {
    this.exerciseType = exerciseType;
    notifyListeners();
  }

  setQuantity(int quantity) {
    this.quantity = quantity;
  }

  addExercise() async {
//    this.exerciseViewModel = exerciseViewModel;
    final Exercise modelExercise = exerciseViewModel.getExercise();
    modelExercise.customerId = this.customer.customerId;
    modelExercise.exerciseTypeId = this.exerciseType.exerciseTypeId;
    await ExerciseApi().addExercise(modelExercise);
  }

  createNewModel() {
    exerciseViewModel = ExerciseViewModel();
    exerciseViewModel.createNew();
  }

  Future<List<ExerciseViewModel>> getExercisesByCustomer( int customerId ) async {
    final results =  await ExerciseApi().getExercisesByCustomer(customerId);
    this.exerciseList = results.map((item) => ExerciseViewModel(exercise: item)).toList();
    notifyListeners();
    return this.exerciseList;
  }

}