using FastEndpoints; using MediatR; using RAG.Application.Chat.Commands; using RAG.Application.Chat.DTOs; namespace RAG.Api.Endpoints.Chat; public class SendMessageEndpoint(IMediator mediator) : Endpoint { public override void Configure() { Post("/chat/conversations/{ConversationId}/messages"); AllowAnonymous(); } public override async Task HandleAsync(SendMessageRequest req, CancellationToken ct) { var conversationId = Route("ConversationId"); var result = await mediator.Send(new SendMessageCommand(conversationId, req.Content), ct); await Send.OkAsync(result, ct); } } public record SendMessageRequest(string Content);