aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Models/Database/Base.cs
blob: 0b16b12657a01c65d64a78b3dd66ea6cc66f0f61 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace IOL.GreatOffice.Api.Data.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;
    }
}