diff options
Diffstat (limited to 'src/Data/Database/Category.cs')
| -rw-r--r-- | src/Data/Database/Category.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/Data/Database/Category.cs b/src/Data/Database/Category.cs new file mode 100644 index 0000000..6e0d324 --- /dev/null +++ b/src/Data/Database/Category.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using IOL.Helpers; +using VSH.Data.Enums; +using VSH.Utilities; + +namespace VSH.Data.Database; + +public class Category : Base +{ + public Category(string name = default) { + if (name.IsNullOrWhiteSpace()) + return; + Name = name; + Slug = name.Slugified(); + } + + public string Name { get; set; } + public string Slug { get; set; } + public CategoryVisibility VisibilityState { get; set; } + public ICollection<Product> Products { get; set; } + public bool Disabled => VisibilityState == CategoryVisibility.DISABLED; + public bool Deleted => VisibilityState == CategoryVisibility.DELETED; + + public void Update(Category update = default) { + Name = update?.Name ?? Name; + VisibilityState = update?.VisibilityState ?? VisibilityState; + Updated = DateTime.UtcNow; + } +}
\ No newline at end of file |
