aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/Database/Category.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-06-01 21:13:43 +0200
committerivarlovlie <git@ivarlovlie.no>2022-06-01 21:13:43 +0200
commit9383a2fb09ffb60cfe63683106945bd688affa59 (patch)
tree65b3f4b48841583e355887db5de5a16e7005fc87 /src/Data/Database/Category.cs
downloadvinjesvingenhandel.no-9383a2fb09ffb60cfe63683106945bd688affa59.tar.xz
vinjesvingenhandel.no-9383a2fb09ffb60cfe63683106945bd688affa59.zip
feat: Initial commit after clean slate
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