using System.ComponentModel.DataAnnotations;

namespace ASTRAIN.Shared.Models;

/// <summary>
/// Represents an exercise entry within a routine run.
/// </summary>
public class RoutineRunEntry
{
    /// <summary>
    /// Gets or sets the database identifier.
    /// </summary>
    public int Id { get; set; }

    /// <summary>
    /// Gets or sets the parent routine run identifier.
    /// </summary>
    [Required]
    public int RoutineRunId { get; set; }

    /// <summary>
    /// Gets or sets the parent routine run.
    /// </summary>
    public RoutineRun? RoutineRun { get; set; }

    /// <summary>
    /// Gets or sets the exercise identifier.
    /// </summary>
    [Required]
    public int ExerciseId { get; set; }

    /// <summary>
    /// Gets or sets the exercise.
    /// </summary>
    public Exercise? Exercise { get; set; }

    /// <summary>
    /// Gets or sets the used weight.
    /// </summary>
    public double Weight { get; set; }

    /// <summary>
    /// Gets or sets whether the exercise was completed.
    /// </summary>
    public bool Completed { get; set; }
}
