Add original name support for shows: implement API endpoint to set original name, update Show and ShowDto models to include original name field, and enhance UI components for managing original names in show metadata. Update validation and database schema accordingly.

This commit is contained in:
Leonid Pershin
2026-07-25 11:10:33 +03:00
parent 84c2867062
commit 72451f89a8
18 changed files with 1052 additions and 7 deletions
@@ -7,6 +7,7 @@ using TeleWave.Application.Library.DeleteShow;
using TeleWave.Application.Library.GetShow;
using TeleWave.Application.Library.ListShows;
using TeleWave.Application.Library.RemoveEpisode;
using TeleWave.Application.Library.SetShowOriginalName;
using TeleWave.Infrastructure.Identity;
namespace TeleWave.Api.Endpoints;
@@ -22,6 +23,9 @@ public static class ShowEndpoints
admin.MapPost("", CreateShow).Produces<CreatedIdResponse>(StatusCodes.Status201Created);
admin.MapGet("", ListShows).Produces<IReadOnlyList<ShowSummaryDto>>();
admin.MapGet("/{id:guid}", GetShow).Produces<ShowDto>();
admin
.MapPut("/{id:guid}/original-name", SetOriginalName)
.Produces(StatusCodes.Status204NoContent);
admin.MapDelete("/{id:guid}", DeleteShow).Produces(StatusCodes.Status204NoContent);
admin
.MapPost("/{id:guid}/episodes", AddEpisode)
@@ -61,6 +65,20 @@ public static class ShowEndpoints
return result.ToHttpResult();
}
private static async Task<IResult> SetOriginalName(
Guid id,
SetShowOriginalNameBody body,
ISender sender,
CancellationToken cancellationToken
)
{
var result = await sender.Send(
new SetShowOriginalNameCommand(id, body.OriginalName),
cancellationToken
);
return result.ToHttpResult();
}
private static async Task<IResult> DeleteShow(
Guid id,
ISender sender,
@@ -97,3 +115,5 @@ public static class ShowEndpoints
}
public sealed record AddEpisodeBody(Guid MediaAssetId);
public sealed record SetShowOriginalNameBody(string? OriginalName);