using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace HyperBooru; public class DbTagDefinition : DbObject { public TagSource Source { get; set; } = TagSource.Internal; public string? Namespace { get; set; } public string Name { get; set; } public virtual List ImplicitTags { get; set; } = new(); public DbTagDefinition() => base.ObjectType = ObjectType.TagDefinition; } public class DbTag : DbObject { public virtual DbTagDefinition TagDefinition { get; set; } public DateTime CreateTime { get; set; } = DateTime.Now; public virtual DbObject Target { get; set; } public DbTag() => base.ObjectType = ObjectType.Tag; }