Add audience categorization for shows: implement ShowAudience type, update related API endpoints, and enhance frontend components for audience selection and display. Modify data structures to support audience information in show creation and retrieval processes.
This commit is contained in:
@@ -8,5 +8,6 @@ public sealed record CreateShowCommand(
|
||||
string Name,
|
||||
ShowKind Kind,
|
||||
string? Description,
|
||||
string? OriginalName = null
|
||||
string? OriginalName = null,
|
||||
ShowAudience Audience = ShowAudience.General
|
||||
) : ICommand<Result<Guid>>;
|
||||
|
||||
@@ -14,7 +14,8 @@ public sealed class CreateShowCommandHandler(IAppDbContext dbContext)
|
||||
command.Name,
|
||||
command.Kind,
|
||||
command.Description,
|
||||
command.OriginalName
|
||||
command.OriginalName,
|
||||
command.Audience
|
||||
);
|
||||
dbContext.Shows.Add(show);
|
||||
return Task.FromResult(Result.Success(show.Id));
|
||||
|
||||
@@ -61,6 +61,7 @@ public sealed class GetShowQueryHandler(IAppDbContext dbContext)
|
||||
show.Name,
|
||||
show.OriginalName,
|
||||
show.Kind,
|
||||
show.Audience,
|
||||
show.Description,
|
||||
show.MetadataProvider,
|
||||
show.MetadataExternalId,
|
||||
|
||||
@@ -46,6 +46,7 @@ public sealed class ListShowsQueryHandler(IAppDbContext dbContext)
|
||||
s.Name,
|
||||
s.OriginalName,
|
||||
s.Kind,
|
||||
s.Audience,
|
||||
s.Episodes.Count,
|
||||
seasons,
|
||||
s.Year,
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
using LiteCqrs;
|
||||
using TeleWave.Application.Common.Models;
|
||||
using TeleWave.Domain.Library;
|
||||
|
||||
namespace TeleWave.Application.Library.SetShowAudience;
|
||||
|
||||
/// <summary>Задать категорию аудитории шоу (обычное/детское/взрослое).</summary>
|
||||
public sealed record SetShowAudienceCommand(Guid Id, ShowAudience Audience) : ICommand<Result>;
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
using LiteCqrs;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TeleWave.Application.Common.Interfaces;
|
||||
using TeleWave.Application.Common.Models;
|
||||
|
||||
namespace TeleWave.Application.Library.SetShowAudience;
|
||||
|
||||
public sealed class SetShowAudienceCommandHandler(IAppDbContext dbContext)
|
||||
: ICommandHandler<SetShowAudienceCommand, Result>
|
||||
{
|
||||
public async Task<Result> Handle(
|
||||
SetShowAudienceCommand command,
|
||||
CancellationToken cancellationToken
|
||||
)
|
||||
{
|
||||
var show = await dbContext.Shows.FirstOrDefaultAsync(
|
||||
s => s.Id == command.Id,
|
||||
cancellationToken
|
||||
);
|
||||
if (show is null)
|
||||
return Result.Failure(ShowErrors.NotFound);
|
||||
|
||||
show.SetAudience(command.Audience);
|
||||
return Result.Success();
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ public sealed record ShowSummaryDto(
|
||||
string Name,
|
||||
string? OriginalName,
|
||||
ShowKind Kind,
|
||||
ShowAudience Audience,
|
||||
int EpisodeCount,
|
||||
int SeasonCount,
|
||||
int? Year,
|
||||
@@ -35,6 +36,7 @@ public sealed record ShowDto(
|
||||
string Name,
|
||||
string? OriginalName,
|
||||
ShowKind Kind,
|
||||
ShowAudience Audience,
|
||||
string? Description,
|
||||
string? MetadataProvider,
|
||||
string? MetadataExternalId,
|
||||
|
||||
Reference in New Issue
Block a user