using System.ComponentModel; using LehrerApp.Core.Interfaces; namespace LehrerApp.Desktop.Services.Mcp.Tools; /// MCP-Read-Tool "get_groups" (Nutzer-Nachtrag: die GroupId, die praktisch jedes andere /// Tool als Pflichtparameter verlangt - get_grades, get_schedule, get_lesson_plans, /// get_untis_absence_rows usw. - war nirgends über MCP auflösbar; ein KI-Client kannte bestenfalls /// den Klarnamen einer Lerngruppe aus dem Gespräch, nie ihre Id). Reiner Lesezugriff auf das /// bestehende Repository, keine eigene Datenzugriffslogik. public class GroupTools(IGroupRepository groups) { [Description("Listet Lerngruppen (Klassen/Kurse) mit ihrer Id - Voraussetzung, um andere Tools (z.B. get_grades, get_schedule, get_untis_absence_rows) für eine bestimmte Gruppe aufzurufen, wenn nur ihr Name bekannt ist. Ohne schoolYear werden alle Schuljahre zurückgegeben.")] public List GetGroups( [Description("Optionales Schuljahr zum Filtern, Format \"2025/26\". Ohne Angabe alle Schuljahre.")] string? schoolYear = null, [Description("Auch inaktive/archivierte Gruppen einbeziehen.")] bool includeInactive = false) { var list = schoolYear is null ? groups.GetAll(includeInactive) : groups.GetBySchoolYear(schoolYear, includeInactive); return list.Select(g => new GroupDto(g.Id, g.Name, g.Type, g.SchoolYear, g.GradeLevel, g.SubjectId, g.IsActive)).ToList(); } }