refactor(di): add AddApplication entry point and generic AddValidatedOptions

- Add Musify.Application.AddApplication(services, config) as the layer's DI
  entry point: registers Mediator, UploadIntentValidator and all app configs
- Collapse the 5 near-identical AddXConfiguration methods into a single
  generic AddValidatedOptions<T>(config, section)
- Move UploadIntentValidator registration out of Infrastructure into the
  Application layer (fixes layering leak); Infra config binding now uses the
  generic helper
- Api calls AddApplication; Worker uses AddValidatedOptions for its configs

Build: 0 warnings, 0 errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 04:36:46 +02:00
co-authored by Claude Opus 4.8
parent e802c8565d
commit 38f7094fb0
5 changed files with 47 additions and 69 deletions
+3 -3
View File
@@ -10,9 +10,9 @@ var configuration = builder.Configuration;
var services = builder.Services;
services.AddApplicationStorageConfiguration(configuration);
services.AddPlayListConfiguration(configuration);
services.AddTrackConfiguration(configuration);
services.AddValidatedOptions<ApplicationStorageConfiguration>(configuration, ApplicationStorageConfiguration.SectionName);
services.AddValidatedOptions<PlayListConfiguration>(configuration, PlayListConfiguration.SectionName);
services.AddValidatedOptions<TrackConfiguration>(configuration, TrackConfiguration.SectionName);
services.AddStorageService(configuration);
services.AddAudioTranscoder(configuration);
services.AddPictureService(configuration);