aboutsummaryrefslogtreecommitdiffstats
path: root/src/Data/Database/Category.cs
blob: 6e0d3244619ed51e8bb7ce09c7511c77ba33e1d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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;
	}
}