use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ExerciseHistoryEntry {
#[serde(default)]
pub workout_id: String,
#[serde(default)]
pub workout_title: String,
#[serde(default)]
pub workout_start_time: String,
#[serde(default)]
pub workout_end_time: String,
#[serde(default)]
pub exercise_template_id: String,
#[serde(default)]
pub weight_kg: Option<f64>,
#[serde(default)]
pub reps: Option<f64>,
#[serde(default)]
pub distance_meters: Option<f64>,
#[serde(default)]
pub duration_seconds: Option<f64>,
#[serde(default)]
pub rpe: Option<f64>,
#[serde(default)]
pub custom_metric: Option<f64>,
#[serde(default)]
pub set_type: String,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub(crate) struct ExerciseHistoryEnvelope {
#[serde(default)]
pub exercise_history: Vec<ExerciseHistoryEntry>,
}