using File.Application.Features.Folders.Commands;
using MediatR;
namespace BuildFlow.Host.Endpoints.file.Folders;
/// 移动文件到目标文件夹端点。POST /api/files/{Id}/move。
[Authorize]
public class MoveFileEndpoint(IMediator mediator) : Endpoint
{
public override void Configure() => Post("/files/{Id}/move");
public override async Task HandleAsync(MoveFileRequest req, CancellationToken ct)
{
var targetId = string.IsNullOrEmpty(req.TargetFolderId) ? (Guid?)null : Guid.Parse(req.TargetFolderId);
await mediator.Send(new MoveFileCommand(Guid.Parse(req.Id), targetId), ct);
await Send.OkAsync(new { message = "moved" }, ct);
}
}