38 lines
1.5 KiB
C#
38 lines
1.5 KiB
C#
namespace LehrerApp.Core.Models;
|
|
|
|
/// <summary>
|
|
/// Ein aus dem schulweiten Jahresplan importierter Termin. Anders als <see cref="TimetableSlot"/>
|
|
/// und <see cref="SubstitutionEntry"/> ist er reine Kalenderinformation: Er verändert weder den
|
|
/// regulären Stundenplan noch erzeugt er Vertretungen oder Ausfälle.
|
|
/// </summary>
|
|
public class AnnualPlanEvent
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
|
|
/// <summary>Stabile UID aus dem iCal-Feed; fachlicher Schlüssel für idempotente Importe.</summary>
|
|
public string ExternalId { get; set; } = "";
|
|
|
|
public string Title { get; set; } = "";
|
|
public string Description { get; set; } = "";
|
|
public string Location { get; set; } = "";
|
|
|
|
/// <summary>Erster beziehungsweise letzter tatsächlich belegter lokaler Kalendertag.</summary>
|
|
public DateOnly StartDate { get; set; }
|
|
public DateOnly EndDate { get; set; }
|
|
|
|
/// <summary>
|
|
/// Bei Ganztagsterminen null. Zeitgebundene UTC-Werte aus dem Feed werden beim Import in die
|
|
/// lokale Schulzeit Europe/Berlin umgerechnet.
|
|
/// </summary>
|
|
public TimeOnly? StartTime { get; set; }
|
|
public TimeOnly? EndTime { get; set; }
|
|
public bool IsAllDay { get; set; }
|
|
|
|
/// <summary>ClassyPlan-Gruppe, z.B. "Lehrkräfte" oder "Öffentlich".</summary>
|
|
public string CalendarGroup { get; set; } = "";
|
|
public string Color { get; set; } = "";
|
|
public string Status { get; set; } = "CONFIRMED";
|
|
public int Sequence { get; set; }
|
|
public DateTime? SourceLastModifiedUtc { get; set; }
|
|
}
|