refactor: replace internal UnitOfWork with NotificationUnitOfWork and NotificationBaseRepository

- Consolidate unit of work implementation with NotificationUnitOfWork.
- Refactor repositories to use NotificationBaseRepository for consistency.
- Simplify request handlers by removing IUnitOfWork dependency.
- Update related tests and service registration.
This commit is contained in:
Anatolii Grynchuk
2026-05-13 02:08:43 +03:00
parent b4d8497ea7
commit 50828d23ec
32 changed files with 276 additions and 186 deletions
@@ -1,13 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="HrynCo.DAL.Abstract" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="HrynCo.DAL.Abstract" />
</ItemGroup>
</Project>
@@ -12,4 +12,4 @@ public class EmailChannel : Entity
public int? MonthlyLimit { get; set; }
public int WarnThresholdPercent { get; set; } = 90;
public bool IsActive { get; set; } = true;
}
}
@@ -1,13 +1,14 @@
using HrynCo.DAL.Abstract.Entities;
namespace HrynCo.NotificationService.DAL.Abstract.Providers;
/// <summary>
/// Tracks email send counts per EmailChannel per calendar day.
/// Monthly counts are derived by summing daily records within a month.
/// </summary>
public class EmailChannelUsage : Entity
public class EmailChannelUsage
{
public Guid Id { get; set; }
public DateTimeOffset Created { get; set; }
public DateTimeOffset? Updated { get; set; }
public Guid ProviderId { get; set; }
public DateOnly Date { get; set; }
public int SentCount { get; set; }