Commit Graph

4 Commits

Author SHA1 Message Date
Anatolii Grynchuk b0996833bc feat: add RabbitMQ worker, contracts, usage UI in channels screen
- Add HrynCo.NotificationService.Contracts project with SendEmailMessage and NotificationResultMessage
- Add SendEmailConsumer (RabbitMQ worker) with reply-to pattern via CorrelationContext.ReplyTo
- Add SendEmailHandler owning SMTP send + usage increment as business logic
- Add GetChannelUsageSummaryHandler with single DB query via navigation property
- Merge usage stats inline into channels list (daily/monthly with progress bars)
- Refactor AdminChannelsController.Index to use GetChannelUsageSummaryQuery
- Add RabbitMQ service to docker-compose files
- Remove dead AdminChannelUsageController, ChannelUsageViewModel, ChannelUsageSummary

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 14:00:58 +03:00
Anatolii Grynchuk 4ea57b2068 feat: introduce AppSettings per application
- AppSettings class in Api and Worker with SectionName constant
- appsettings.json: replaced ConnectionStrings section with App section
- Program.cs: bind AppSettings at startup, register as singleton
- Connection string now sourced from AppSettings.ConnectionString

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 00:30:19 +03:00
Anatolii Grynchuk 5cf5f888eb feat: wire up Program.cs, DI extensions, Serilog, and appsettings
- ServiceCollectionExtensions in DAL.EF: AddNotificationDataAccess (DbContext, UoW, repositories)
- ServiceCollectionExtensions in Services: AddNotificationServices (MediatR + TransactionBehavior)
- Api/Program.cs: Serilog, OpenAPI, controllers, DI wiring
- Worker/Program.cs: Serilog, DI wiring
- appsettings.json: Serilog config with Console + Seq sinks, connection string
- appsettings.Development.json: Debug log level overrides

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-02 00:24:54 +03:00
Anatolii Grynchuk 8aee35c123 chore: scaffold solution with Core, Api, Worker and test projects
- HrynCo.NotificationService.Core (class library)
- HrynCo.NotificationService.Api (ASP.NET Core Web API)
- HrynCo.NotificationService.Worker (Worker Service)
- HrynCo.NotificationService.Core.Tests (xUnit)
- HrynCo.NotificationService.Api.IntegrationTests (xUnit)
- Api and Worker reference Core
- Test projects reference their respective targets

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-01 18:54:38 +03:00