import 'dart:convert';

import 'package:aitrainer_app/model/customer_training_plan.dart';
import 'package:aitrainer_app/model/customer_training_plan_exercise.dart';
import 'package:aitrainer_app/service/api.dart';
import 'package:aitrainer_app/service/logging.dart';

class TrainingPlanApi with Logging {
  final APIClient _client = APIClient();

  Future<CustomerTrainingPlan> saveCustomerTrainingPlan(CustomerTrainingPlan plan) async {
    String body = JsonEncoder().convert(plan.toJson());
    log(" ===== saving customer training plan:" + body);
    final String response = await _client.post("customer_training_plan/", body);
    final CustomerTrainingPlan saved = CustomerTrainingPlan.fromJson(jsonDecode(response));
    return saved;
  }

  Future<CustomerTrainingPlanExercise> saveCustomerTrainingPlanExercise(CustomerTrainingPlanExercise planExercise) async {
    String body = JsonEncoder().convert(planExercise.toJson());
    log(" ===== saving customer training plan exercise:" + body);
    final String response = await _client.post("customer_training_plan_exercise/", body);
    final CustomerTrainingPlanExercise saved = CustomerTrainingPlanExercise.fromJson(jsonDecode(response));
    return saved;
  }

  Future<CustomerTrainingPlan> updateCustomerTrainingPlan(CustomerTrainingPlan plan, int customerTrainingPlanId) async {
    String body = JsonEncoder().convert(plan.toJson());
    log(" ===== update customer training plan:" + body);
    final String response = await _client.post("customer_training_plan/update/$customerTrainingPlanId", body);
    final CustomerTrainingPlan saved = CustomerTrainingPlan.fromJson(jsonDecode(response));
    return saved;
  }
}