aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Models/Database/Base.cs
blob: ec7fad4ebb7930d8ee87bd3269c5c55e76315565 (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
namespace IOL.GreatOffice.Api.Models.Database;

public abstract class Base
{
    protected Base()
    {
        Id = Guid.NewGuid();
        CreatedAt = AppDateTime.UtcNow;
    }

    public Guid Id { get; init; }
    public DateTime CreatedAt { get; init; }
    public DateTime? ModifiedAt { get; private set; }
    public DateTime? DeletedAt { get; private set; }
    public bool Deleted { get; private set; }

    public void SetModified() => ModifiedAt = AppDateTime.UtcNow;

    public void SetDeleted()
    {
        Deleted = true;
        DeletedAt = AppDateTime.UtcNow;
    }
}