docs: Update AGENTS.md and STATUS.md with RabbitMQ and Phase 2 completion

AGENTS.md:
- Add Section 7: RabbitMQ Command Bus Integration (IMPLEMENTED)
- Document ICommandPublisher, RabbitMqCommandPublisher, RabbitMqCommandConsumer
- Add configuration, DI setup, and usage examples
- Document benefits: async processing, horizontal scaling, retries, persistence

STATUS.md:
- Mark Phase 2 (Application Layer) as 100% complete
- Update Phase 3 (Infrastructure Layer) to 15% (RabbitMQ done)
- Document all completed components: DTOs, Commands, Queries, Validators, Mappings
- Update last modified date to 2026-07-14
This commit is contained in:
2026-07-14 16:37:22 +02:00
parent 1ed489532d
commit 0d22fe0b5c
2 changed files with 249 additions and 50 deletions

105
STATUS.md
View File

@@ -1,6 +1,6 @@
# EmailProfiler - Current Implementation Status
**Last Updated**: 2026-07-07
**Last Updated**: 2026-07-14
---
@@ -48,10 +48,55 @@
---
## 🚧 IN PROGRESS (Phase 2: Application Layer - 5%)
## ✅ COMPLETED (Phase 2: Application Layer - 100%)
### DTOs
-`CommonDtos.cs` - EmailProfileDto, EmailAccountDto, EmailHistoryDto, EmailAttachmentDto
### DTOs (Common/Dtos/{Entity}/)
-`EmailProfiles/EmailProfileDto.cs`
-`EmailAccounts/EmailAccountDto.cs`
-`EmailHistories/EmailHistoryDto.cs`, `CreateEmailHistoryDto.cs`, `UpdateEmailHistoryStatusDto.cs`
-`EmailAttachments/EmailAttachmentDto.cs`, `CreateEmailAttachmentDto.cs`, `UpdateEmailAttachmentStatusDto.cs`
### Repository Interfaces (Generic Pattern - NO UnitOfWork)
-`IRepository<T>` - Generic repository with CreateAsync<TDto>, UpdateSingleAsync<TDto>, DeleteSingleAsync, UpdateAsync, DeleteAsync
### Service Interfaces
-`IEmailService.cs` - IMAP/SMTP operations
-`IPdfProcessingService.cs` - PDF validation and extraction
-`IDmsService.cs` - windream DMS integration
-`IEncryptionService.cs` - Password encryption
-`IEmailQueue.cs` - Email queue operations
-`ICommandPublisher.cs` - RabbitMQ command publishing
### MediatR Commands (Features/*/Commands/)
-`CreateEmailProfileCommand.cs` + Handler
-`UpdateEmailProfileCommand.cs` + Handler
-`DeleteEmailProfileCommand.cs` + Handler
-`CreateEmailAccountCommand.cs` + Handler
-`ProcessEmailCommand.cs` + Handler
### MediatR Queries (Features/*/Queries/)
-`GetEmailProfilesQuery.cs` + Handler
-`GetEmailProfileByIdQuery.cs` + Handler
-`GetActiveEmailProfilesQuery.cs` + Handler
-`GetEmailAccountsQuery.cs` + Handler
-`GetEmailAccountByIdQuery.cs` + Handler
-`GetEmailHistoryByProfileQuery.cs` + Handler (with pagination)
-`GetEmailHistoryByIdQuery.cs` + Handler
### Validators (Features/*/Validators/)
-`CreateEmailProfileCommandValidator.cs`
-`UpdateEmailProfileCommandValidator.cs`
-`CreateEmailAccountCommandValidator.cs` (conditional OAuth2/password validation)
-`ProcessEmailCommandValidator.cs` (with attachment validation)
### AutoMapper Profiles (Common/Mappings/)
-`EmailProfileMappingProfile.cs` (Command→Entity, DTO→Entity, Entity→DTO)
-`EmailAccountMappingProfile.cs`
-`EmailHistoryMappingProfile.cs`
-`EmailAttachmentMappingProfile.cs`
### DI Configuration
-`DependencyInjection.cs` - Registers MediatR, AutoMapper, FluentValidation
### NuGet Packages
- ✅ Application project has:
@@ -61,51 +106,23 @@
---
## ❌ TODO (Phase 2: Application Layer - 95%)
## 🚧 IN PROGRESS (Phase 3: Infrastructure Layer - 15%)
### Repository Interfaces
- `IEmailProfileRepository.cs`
- `IEmailAccountRepository.cs`
- `IEmailHistoryRepository.cs`
- `IEmailProcessRepository.cs`
- `IEmailOutboxRepository.cs`
### RabbitMQ Command Bus (COMPLETED)
- `RabbitMqConfiguration.cs` - Configuration model
- `RabbitMqCommandPublisher.cs` - ICommandPublisher implementation
- `RabbitMqCommandConsumer.cs` - BackgroundService for command consumption
- `DependencyInjection.cs` - Infrastructure DI with RabbitMQ registration
- ✅ Configuration in `appsettings.json` (Server: 172.24.12.56:5672)
### Service Interfaces
- `IEmailService.cs`
- `IPdfProcessingService.cs`
- `IDmsService.cs`
-`IEncryptionService.cs`
-`IEmailQueue.cs`
### MediatR Commands
-`CreateEmailProfileCommand.cs`
-`UpdateEmailProfileCommand.cs`
-`DeleteEmailProfileCommand.cs`
-`ActivateProfileCommand.cs`
-`DeactivateProfileCommand.cs`
- ❌ Similar commands for EmailAccount, EmailProcess, etc.
### MediatR Queries
-`GetEmailProfilesQuery.cs`
-`GetEmailProfileByIdQuery.cs`
-`GetActiveProfilesQuery.cs`
-`GetProfilesDueForPollingQuery.cs`
- ❌ Similar queries for other entities
### Validators
-`CreateEmailProfileCommandValidator.cs`
-`UpdateEmailProfileCommandValidator.cs`
- ❌ Similar validators for all commands
### Mappings
-`MappingProfile.cs` - AutoMapper configuration
### DI Configuration
-`DependencyInjection.cs` - Application layer DI setup
### NuGet Packages (Partial)
- ✅ RabbitMQ.Client 7.2.1
- ✅ Microsoft.Extensions.Hosting 10.0.9
- ✅ Microsoft.Extensions.Options.ConfigurationExtensions 10.0.9
---
## ❌ TODO (Phase 3: Infrastructure Layer - 0%)
## ❌ TODO (Phase 3: Infrastructure Layer - 85%)
### NuGet Packages
- ❌ Microsoft.EntityFrameworkCore.SqlServer