Exercise.java
package mirante.api.exercise;
import com.fasterxml.jackson.annotation.JsonManagedReference;
import mirante.api.exercise.option.Option;
import mirante.api.exercise.set.ExerciseSet;
import java.util.Set;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.OneToMany;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.JoinColumn;
import com.fasterxml.jackson.annotation.JsonProperty;
@Entity
public class Exercise {
@Id @JsonProperty("id") private String id;
@JsonProperty("instruction") private String instruction;
@JsonManagedReference
@OneToMany @JoinColumn(name = "exercise_option")
private Set<Option> options;
@JsonProperty("set")
@ManyToOne @JoinColumn(name = "exercise_set", referencedColumnName = "id")
private ExerciseSet set;
public Exercise() {}
public Exercise(String id) {
this.id = id;
}
public Exercise(String id, String instruction) {
this.id = id;
this.instruction = instruction;
}
public void addOption(Option option) {
if (option.getExerciseId().equals(id)) {
options.add(option);
}
}
public String getId() { return id; }
public String getInstruction() { return instruction; }
public String getSetId() { return set.getId(); }
public Set<Option> getOptions() { return options; }
}