using System.ComponentModel; using LehrerApp.Core.Interfaces; namespace LehrerApp.Desktop.Services.Mcp.Tools; /// MCP-Read-Tool "get_lesson_plans" (Phase 2, siehe Planungsdokument). Liefert /// Unterrichtseinheiten einer Lerngruppe sowie deren Einzelstunden in einem Zeitraum. public class LessonPlanTools(IUnitRepository units, ILessonRepository lessons) { [Description("Listet Unterrichtseinheiten und -stunden einer Lerngruppe; die Einzelstunden werden auf den angegebenen Zeitraum gefiltert.")] public LessonPlanResultDto GetLessonPlans( [Description("Lerngruppen-ID.")] Guid groupId, [Description("Startdatum (einschließlich) für die Einzelstunden, Format YYYY-MM-DD.")] DateOnly from, [Description("Enddatum (einschließlich) für die Einzelstunden, Format YYYY-MM-DD.")] DateOnly to) { var unitDtos = units.GetByGroup(groupId) .Select(u => new UnitDto(u.Id, u.GroupId, u.Title, u.StartDate, u.EndDate, u.Status, u.Competencies)) .ToList(); var lessonDtos = lessons.GetByGroupAndRange(groupId, from, to) .Select(l => new LessonDto( l.Id, l.UnitId, l.GroupId, l.Date, l.LessonNumber, l.Topic, l.Homework, l.Status, l.Phases.Select(p => new LessonPhaseDto(p.Name, p.DurationMinutes, p.Activity, p.Material, p.Shorthand)).ToList())) .ToList(); return new LessonPlanResultDto(unitDtos, lessonDtos); } }