using YamlDotNet.Serialization; namespace LocalModels; public record LocalCourseSettings { public IEnumerable AssignmentGroups { get; init; } = Enumerable.Empty(); [YamlIgnore] 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 string ToYaml() { var serializer = new SerializerBuilder().DisableAliases().Build(); var yaml = serializer.Serialize(this); return yaml; } public static LocalCourseSettings ParseYaml(string rawText) { var deserializer = new DeserializerBuilder() .IgnoreUnmatchedProperties() .Build(); var settings = deserializer.Deserialize(rawText); return settings; } }