diff --git a/src/Duempelkas.Domain/Duempelkas.Domain.csproj b/src/Duempelkas.Domain/Duempelkas.Domain.csproj new file mode 100644 index 0000000..6c3a887 --- /dev/null +++ b/src/Duempelkas.Domain/Duempelkas.Domain.csproj @@ -0,0 +1,7 @@ + + + net10.0 + enable + enable + + diff --git a/src/Duempelkas.Domain/Entities/Account.cs b/src/Duempelkas.Domain/Entities/Account.cs new file mode 100644 index 0000000..5c35a11 --- /dev/null +++ b/src/Duempelkas.Domain/Entities/Account.cs @@ -0,0 +1,11 @@ +namespace Duempelkas.Domain.Entities; + +public class Account +{ + public int Id { get; set; } + public string Name { get; set; } = string.Empty; + public decimal CarryoverBalance { get; set; } + public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; + + public ICollection Entries { get; set; } = new List(); +} diff --git a/src/Duempelkas.Domain/Entities/AccountYear.cs b/src/Duempelkas.Domain/Entities/AccountYear.cs new file mode 100644 index 0000000..dfd962f --- /dev/null +++ b/src/Duempelkas.Domain/Entities/AccountYear.cs @@ -0,0 +1,13 @@ +namespace Duempelkas.Domain.Entities; + +public class AccountYear +{ + public int Id { get; set; } + public int AccountId { get; set; } + public int Year { get; set; } + public decimal OpeningBalance { get; set; } + public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; + + public Account Account { get; set; } = null!; + public ICollection Entries { get; set; } = new List(); +} diff --git a/src/Duempelkas.Domain/Entities/Entry.cs b/src/Duempelkas.Domain/Entities/Entry.cs new file mode 100644 index 0000000..32828d1 --- /dev/null +++ b/src/Duempelkas.Domain/Entities/Entry.cs @@ -0,0 +1,20 @@ +using Duempelkas.Domain.Enums; + +namespace Duempelkas.Domain.Entities; + +public class Entry +{ + public int Id { get; set; } + public int AccountId { get; set; } + public string DisplayId { get; set; } = string.Empty; + public EntryType Type { get; set; } + public DateTime Date { get; set; } + public string Title { get; set; } = string.Empty; + public decimal Amount { get; set; } + public bool IsDeleted { get; set; } + public int? TransferLinkId { get; set; } + public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; + + public Account Account { get; set; } = null!; + public TransferLink? TransferLink { get; set; } +} diff --git a/src/Duempelkas.Domain/Entities/TransferLink.cs b/src/Duempelkas.Domain/Entities/TransferLink.cs new file mode 100644 index 0000000..38bc237 --- /dev/null +++ b/src/Duempelkas.Domain/Entities/TransferLink.cs @@ -0,0 +1,13 @@ +namespace Duempelkas.Domain.Entities; + +public class TransferLink +{ + public int Id { get; set; } + public int SourceEntryId { get; set; } + public int TargetEntryId { get; set; } + public string? Note { get; set; } + public DateTime CreatedUtc { get; set; } = DateTime.UtcNow; + + public Entry SourceEntry { get; set; } = null!; + public Entry TargetEntry { get; set; } = null!; +} diff --git a/src/Duempelkas.Domain/Enums/EntryType.cs b/src/Duempelkas.Domain/Enums/EntryType.cs new file mode 100644 index 0000000..c7281fe --- /dev/null +++ b/src/Duempelkas.Domain/Enums/EntryType.cs @@ -0,0 +1,7 @@ +namespace Duempelkas.Domain.Enums; + +public enum EntryType +{ + Income = 0, + Expense = 1 +}