Files
LehrerApp/LehrerApp.Core/Models/SeatingPlan.cs
T

36 lines
1.3 KiB
C#

namespace LehrerApp.Core.Models;
/// <summary>
/// Ein Sitzplan einer Lerngruppe. Eine Gruppe kann mehrere Pläne besitzen,
/// beispielsweise für unterschiedliche Unterrichtsräume.
/// </summary>
public class SeatingPlan
{
public Guid Id { get; set; } = Guid.NewGuid();
public Guid GroupId { get; set; }
public string Name { get; set; } = "";
public string Room { get; set; } = "";
public int Rows { get; set; } = 4;
public int Columns { get; set; } = 4;
/// <summary>
/// Zeigt die Tafel unterhalb des Sitzrasters an. Der Standardwert <c>false</c>
/// erhält für bestehende Pläne die bisherige Darstellung oberhalb des Rasters.
/// </summary>
public bool IsBoardAtBottom { get; set; }
/// <summary>
/// Zusätzlicher horizontaler Abstand nach jeder Spalte, in Pixeln. Der Eintrag mit Index 0
/// liegt zwischen der ersten und zweiten Spalte. Fehlende Einträge bedeuten keinen Abstand.
/// </summary>
public List<double> ColumnGapWidths { get; set; } = [];
public List<SeatAssignment> Assignments { get; set; } = [];
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
}
public class SeatAssignment
{
public int Row { get; set; }
public int Column { get; set; }
public Guid StudentId { get; set; }
}