using YamlDotNet.Serialization; namespace LocalModels; public record LocalCourse { public IEnumerable Modules { get; init; } = Enumerable.Empty(); public LocalCourseSettings Settings { get; set; } } public record LocalCourseSettings { public IEnumerable AssignmentGroups { get; init; } = Enumerable.Empty(); public string Name { get; init; } = string.Empty; public IEnumerable DaysOfWeek { get; init; } = Enumerable.Empty(); public ulong? CanvasId { get; init; } public DateTime StartDate { get; init; } public DateTime EndDate { get; init; } public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly(); public IEnumerable AssignmentTemplates { get; init; } = Enumerable.Empty(); public string ToYaml() { var serializer = new SerializerBuilder().DisableAliases().Build(); var yaml = serializer.Serialize(this); return yaml; } } public record SimpleTimeOnly { public int Hour { get; init; } = 1; public int Minute { get; init; } = 0; }