diff options
Diffstat (limited to 'Tag.cs')
| -rw-r--r-- | Tag.cs | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -0,0 +1,31 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace HyperBooru; + +public enum TagSource { + Internal, + UserTag +} + +public class TagDefinition : HBObject { + public TagSource Source { get; set; } = TagSource.Internal; + public string? Namespace { get; set; } + public string Name { get; set; } + public string? Alias { get; set;} + public virtual List<TagDefinition> ImplicitTags { get; set; } = new(); +} + +public class Tag : HBObject { + [ForeignKey("ObjectId")] + public int TagDefinitionId { get; set; } + public virtual TagDefinition TagDefinition { get; set; } + public DateTime CreateTime { get; set; } = DateTime.UtcNow; + public virtual HBObject Target { get; set; } + + public Tag() {} + + public Tag(TagDefinition tagDef) => + this.TagDefinition = tagDef; +}
\ No newline at end of file |
