diff options
| author | Jake Mannens <jake@asger.xyz> | 2026-03-17 03:04:36 +1100 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2026-06-07 12:32:37 +1000 |
| commit | c51ff4e755f009ca0bc8e935a92c04e583c4ee8a (patch) | |
| tree | 0a9a311c5404a96495df1047e613dc3aea3d0f15 /Tag.cs | |
Initial commit
Diffstat (limited to 'Tag.cs')
| -rw-r--r-- | Tag.cs | 34 |
1 files changed, 34 insertions, 0 deletions
@@ -0,0 +1,34 @@ +using HyperBooru.ApiModels; +using System.ComponentModel.DataAnnotations.Schema; + +namespace HyperBooru; + +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 static explicit operator ApiModels.TagDefinition(TagDefinition tagDefinition) => new() { + TagDefinitionId = tagDefinition.Guid, + Source = tagDefinition.Source, + Namespace = tagDefinition.Namespace, + Name = tagDefinition.Name, + Alias = tagDefinition.Alias, + ImplicitTags = tagDefinition.ImplicitTags.Select(td => td.Guid).ToArray() + }; +} + +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; +} |
