using NodaTime; using NodaTime.Extensions; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using CoreWiki.Utils; namespace CoreWiki.Models; public class Article { [Key] public string Slug { get; set; } [Required, MaxLength(100)] public string Topic { get; set; } [NotMapped] public Instant Published { get; set; } = SystemClock.Instance.GetCurrentInstant(); [Obsolete("This property is only for serialization")] [DataType(DataType.DateTime)] [Column("Published")] [Required] public DateTime PublishedDateTime { get => Published.ToDateTimeUtc(); set => Published = DateTime.SpecifyKind(value, DateTimeKind.Utc).ToInstant(); } [DataType(DataType.MultilineText)] [Required] public string Content { get; set; } = default!; }