docs: update README to reflect refactored service architecture

This commit is contained in:
V1ck3s
2026-01-08 23:31:33 +01:00
parent 5d93af6aa0
commit 6344198572

View File

@@ -284,26 +284,68 @@ dotnet test
octo-fiesta/ octo-fiesta/
├── Controllers/ ├── Controllers/
│ └── SubsonicController.cs # Main API controller │ └── SubsonicController.cs # Main API controller
├── Middleware/
│ └── GlobalExceptionHandler.cs # Global error handling
├── Models/ ├── Models/
│ ├── MusicModels.cs # Song, Album, Artist, etc. │ ├── Domain/ # Domain entities
│ ├── SubsonicSettings.cs # Configuration model ├── Song.cs
└── QobuzSettings.cs # Qobuz configuration │ ├── Album.cs
│ │ └── Artist.cs
│ ├── Settings/ # Configuration models
│ │ ├── SubsonicSettings.cs
│ │ ├── DeezerSettings.cs
│ │ └── QobuzSettings.cs
│ ├── Download/ # Download-related models
│ │ ├── DownloadInfo.cs
│ │ └── DownloadStatus.cs
│ ├── Search/
│ │ └── SearchResult.cs
│ └── Subsonic/
│ └── ScanStatus.cs
├── Services/ ├── Services/
│ ├── DeezerDownloadService.cs # Deezer download & decryption │ ├── Common/ # Shared services
├── DeezerMetadataService.cs # Deezer API integration │ ├── BaseDownloadService.cs # Template method base class
├── QobuzBundleService.cs # Qobuz App ID/secret extraction │ ├── PathHelper.cs # Path utilities
├── QobuzDownloadService.cs # Qobuz download service │ ├── Result.cs # Result<T> pattern
├── QobuzMetadataService.cs # Qobuz API integration │ └── Error.cs # Error types
│ ├── Deezer/ # Deezer provider
│ │ ├── DeezerDownloadService.cs
│ │ ├── DeezerMetadataService.cs
│ │ └── DeezerStartupValidator.cs
│ ├── Qobuz/ # Qobuz provider
│ │ ├── QobuzDownloadService.cs
│ │ ├── QobuzMetadataService.cs
│ │ ├── QobuzBundleService.cs
│ │ └── QobuzStartupValidator.cs
│ ├── Local/ # Local library
│ │ ├── ILocalLibraryService.cs
│ │ └── LocalLibraryService.cs
│ ├── Subsonic/ # Subsonic API logic
│ │ ├── SubsonicProxyService.cs # Request proxying
│ │ ├── SubsonicModelMapper.cs # Model mapping
│ │ ├── SubsonicRequestParser.cs # Request parsing
│ │ └── SubsonicResponseBuilder.cs # Response building
│ ├── Validation/ # Startup validation
│ │ ├── IStartupValidator.cs
│ │ ├── BaseStartupValidator.cs
│ │ ├── SubsonicStartupValidator.cs
│ │ ├── StartupValidationOrchestrator.cs
│ │ └── ValidationResult.cs
│ ├── IDownloadService.cs # Download interface │ ├── IDownloadService.cs # Download interface
│ ├── IMusicMetadataService.cs # Metadata interface │ ├── IMusicMetadataService.cs # Metadata interface
│ └── LocalLibraryService.cs # Local file management │ └── StartupValidationService.cs
├── Program.cs # Application entry point ├── Program.cs # Application entry point
└── appsettings.json # Configuration └── appsettings.json # Configuration
octo-fiesta.Tests/ octo-fiesta.Tests/
├── DeezerDownloadServiceTests.cs ├── DeezerDownloadServiceTests.cs # Deezer download tests
├── DeezerMetadataServiceTests.cs ├── DeezerMetadataServiceTests.cs # Deezer metadata tests
── LocalLibraryServiceTests.cs ── QobuzDownloadServiceTests.cs # Qobuz download tests (127 tests)
├── LocalLibraryServiceTests.cs # Local library tests
├── SubsonicModelMapperTests.cs # Model mapping tests
├── SubsonicProxyServiceTests.cs # Proxy service tests
├── SubsonicRequestParserTests.cs # Request parser tests
└── SubsonicResponseBuilderTests.cs # Response builder tests
``` ```
### Dependencies ### Dependencies
@@ -311,6 +353,9 @@ octo-fiesta.Tests/
- **BouncyCastle.Cryptography** - Blowfish decryption for Deezer streams - **BouncyCastle.Cryptography** - Blowfish decryption for Deezer streams
- **TagLibSharp** - ID3 tag and cover art embedding - **TagLibSharp** - ID3 tag and cover art embedding
- **Swashbuckle.AspNetCore** - Swagger/OpenAPI documentation - **Swashbuckle.AspNetCore** - Swagger/OpenAPI documentation
- **xUnit** - Unit testing framework
- **Moq** - Mocking library for tests
- **FluentAssertions** - Fluent assertion library for tests
## License ## License