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.
6 lines
342 B
C#
6 lines
342 B
C#
namespace ErsatzTV.Controllers.Api.Requests;
|
|
|
|
// Id 0/absent = new; existing Id = update; existing row whose Id is absent from the request = delete
|
|
// (design #202 §C4b) — plus a per-row ownership guard and nonblank validation enforced by the handler.
|
|
public record PathReplacementItemRequest(int Id, string RemotePath, string LocalPath);
|