Add class-teacher slots on SchoolClass with owner-only assign/clear.

EOF

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-21 09:37:37 +03:00
co-authored by Cursor
parent 99eca80d6d
commit 4096d5306e
22 changed files with 992 additions and 22 deletions
+11 -1
View File
@@ -43,12 +43,20 @@ internal static partial class PersonCardReader
var catalog = school.Catalog;
var classes = roster.Classes.ToDictionary(schoolClass => schoolClass.Id, StringComparer.Ordinal);
var people = roster.People.ToDictionary(person => person.Id, StringComparer.Ordinal);
int? year = null;
string? letter = null;
string? classTeacherId = null;
string? classTeacherName = null;
if (person.ClassId is { } classId && classes.TryGetValue(classId, out var schoolClass))
{
year = schoolClass.Year;
letter = schoolClass.Letter;
classTeacherId = schoolClass.ClassTeacherId;
if (classTeacherId is { } teacherId && people.TryGetValue(teacherId, out var teacher))
{
classTeacherName = teacher.Name.Full;
}
}
var needs = LiveNeeds(school.World, personId) ?? person.Needs;
@@ -98,7 +106,9 @@ internal static partial class PersonCardReader
Connections: Connections(roster, person, catalog, locale),
Orientation: OrientationOf(person, catalog, locale),
TalkCircleMemberIds: circle?.MemberIds ?? [],
TalkTopicId: circle?.TopicId);
TalkTopicId: circle?.TopicId,
ClassTeacherId: classTeacherId,
ClassTeacherName: classTeacherName);
}
private static IReadOnlyDictionary<string, float>? LiveNeeds(World world, string personId)