using ChapterX.Domain.Repositories; using MediatR; using Microsoft.Extensions.Logging; namespace ChapterX.Application.AISuggestion.Commands { public class UpdateHandler : IRequestHandler { private readonly IAISuggestionRepository _aiSuggestionRepository; private readonly ILogger _logger; public UpdateHandler(IAISuggestionRepository aiSuggestionRepository, ILogger logger) { _aiSuggestionRepository = aiSuggestionRepository; _logger = logger; } public async Task Handle(UpdateRequest request, CancellationToken cancellationToken) { var suggestion = await _aiSuggestionRepository.GetByIdAsync(request.Id, cancellationToken); if (suggestion is null) return new UpdateResponse(false); suggestion.OriginalText = request.OriginalText; suggestion.SuggestedText = request.SuggestedText; suggestion.Accepted = request.Accepted; if (request.Accepted == true) suggestion.AppliedAt = DateTime.UtcNow; await _aiSuggestionRepository.UpdateAsync(suggestion, cancellationToken); return new UpdateResponse(true); } } }