package com.example.fitbot.exercise;

import com.example.fitbot.util.path.AnglePath;

public class Exercise {

    public final EMuscleGroup muscleGroup;
    public final AnglePath leftPath;
    public final AnglePath rightPath;
    public final String name;
    public final String shortDescription;
    public final String description;
    public final String imageUrl;
    public final String videoUrl;
    public final float exerciseTimeInSeconds;

    /**
     * Constructor for the AbstractExercise class.
     *
     * @param muscleGroup       The muscle group of the exercise.
     * @param leftPath          The path of the left hand.
     * @param rightPath         The path of the right hand.
     * @param name              The title of the exercise.
     * @param shortDescription  The short description of the exercise.
     * @param description       The full description of the exercise.
     * @param imageUrl          The URL of the image.
     * @param videoUrl          The URL of the video.
     */
    public Exercise(EMuscleGroup muscleGroup, String name, String shortDescription,
                    String description, String imageUrl, String videoUrl,
                    AnglePath leftPath, AnglePath rightPath, float exerciseTimeInSeconds) {

        this.name = name;
        this.muscleGroup = muscleGroup;
        this.shortDescription = shortDescription;
        this.description = description;
        this.leftPath = leftPath;
        this.rightPath = rightPath;
        this.imageUrl = imageUrl;
        this.videoUrl = videoUrl;
        this.exerciseTimeInSeconds = exerciseTimeInSeconds;
    }

    public interface ExerciseFetchHandler {
        void handle(Exercise exercise);
    }
}
