feat(api): add media-source write API shared DTOs (#202 slice S0)

Response DTOs (ErsatzTV.Core/Api/MediaSources) and request DTOs
(ErsatzTV/Controllers/Api/Requests) per the #202 design doc §B — the
shared shapes that backend slices S1 (local libraries), S2 (Plex), and
S3 (Jellyfin/Emby) will consume. No controllers or handler changes;
DTOs are unused so far.

Notable: RemoteConnectionResponseModel deliberately never carries the
raw API key (secure connection contract); SaveRemoteConnectionRequest's
To{Jellyfin,Emby}Command(existingApiKey) retains the existing key when
the incoming ApiKey is blank/omitted.

No conventions changed; nothing to update in docs/api-conventions.md.
This commit is contained in:
2026-07-11 15:23:14 +02:00
parent d93bca653a
commit 295004ab12
20 changed files with 189 additions and 0 deletions
@@ -0,0 +1,3 @@
namespace ErsatzTV.Core.Api.MediaSources;
public record LocalPathCheckResponseModel(bool Exists);