using System.Text.Json;
using Server.WatchBody.Core.Dal.Src.Repository;
using Server.WatchBody.Core.Programs;
namespace Server.WatchBody.Web.Services;
///
/// Сводка план/факт по активной версии (spec 05 §2 m08): недели от
/// понедельника недели создания версии; performed — тренировки в
/// плановые дни недели; missed = planned − performed.
///
public class PlanSummaryService(
IWorkoutRepository workouts,
IWorkoutMetricsRepository metrics,
ProgramStore programs)
{
private static readonly string[] DayNames =
["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
public object Summarize(int athleteId)
{
var active = programs.GetActive(athleteId);
if (active == null || string.IsNullOrWhiteSpace(active.Body))
return new { activeVersion = (int?)null, weeks = Array.Empty