mirror of
https://github.com/navidrome/navidrome.git
synced 2026-08-31 07:30:32 +00:00
Introduce a mapping layer between internal model.MediaFile and the API response type. The native API /song endpoint now returns apimodel.Song instead of exposing the database model directly. This decouples the API surface from the persistence layer, enabling calculated fields and hiding internal details (Path, FolderID, LibraryPath, PID, etc.). The architecture is designed for expansion to other models: - mappedRepository: generic REST repository wrapper that transforms Read/ReadAll results through mapping functions - apimodel package: dedicated API response types with explicit field selection and JSON tags independent of the model https://claude.ai/code/session_01TvZ2CgPPfFoxzNYoWuPUBg