feat: add API controllers for template and channel management

- ApiResponse<T>, ApiError in Api/Infrastructure
- ApiControllerBase with IMediator, FromServiceResult, MapServiceError
- EmailTemplatesController: GET list, GET one, POST, PUT, DELETE
- EmailChannelsController: GET list, GET one, POST, PUT, DELETE

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Anatolii Grynchuk
2026-05-02 01:18:51 +03:00
parent 92be035f51
commit a26f41af18
8 changed files with 259 additions and 0 deletions
@@ -0,0 +1,14 @@
namespace HrynCo.NotificationService.Api.Infrastructure;
public sealed class ApiResponse<T>
{
public T? Data { get; init; } = default;
public ApiError? Error { get; init; }
public bool Success { get; init; }
}
public sealed class ApiError
{
public required string Code { get; init; }
public required string Message { get; init; }
}