using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; namespace Distribution.Features.Payment; [ApiController] [Authorize] [Route("api/sales/{saleId:guid}/payments")] public class PaymentController(PaymentService service) : ControllerBase { [HttpGet] public async Task GetBySale(Guid saleId) { var result = await service.GetBySaleIdAsync(saleId); return result is null ? NotFound() : Ok(result); } [HttpPost] public async Task Create(Guid saleId, CreatePaymentRequest request, CancellationToken ct) { try { var result = await service.CreateAsync(saleId, request, ct); return result is null ? NotFound() : Ok(result); } catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } } }