using LiteCqrs; using Microsoft.EntityFrameworkCore; using TeleWave.Application.Common.Interfaces; using TeleWave.Application.Common.Models; namespace TeleWave.Application.Broadcast.RemoveChannelShow; public sealed class RemoveChannelShowCommandHandler(IAppDbContext dbContext) : ICommandHandler { public async Task Handle( RemoveChannelShowCommand command, CancellationToken cancellationToken ) { var channel = await dbContext .Channels.Include(c => c.Shows) .FirstOrDefaultAsync(c => c.Id == command.ChannelId, cancellationToken); if (channel is null) return Result.Failure(ChannelErrors.NotFound); return channel.RemoveShow(command.ChannelShowId) ? Result.Success() : Result.Failure(ChannelErrors.ChannelShowNotFound); } }