aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/Database/Category.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Data/Database/Category.cs')
-rw-r--r--src/Data/Database/Category.cs30
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