using Distribution.Models; using Microsoft.AspNetCore.Mvc; namespace Distribution.Features.ReceivedCheque; [ApiController] [Route("api/received-cheques")] public class ReceivedChequeController(ReceivedChequeService service) : ControllerBase { [HttpGet] public async Task List( [FromQuery] int? companyId, [FromQuery] int? branchId, [FromQuery] ReceivedChequeStatus? status, [FromQuery] ReceivedFromType? receivedFromType, [FromQuery] int page = 1, [FromQuery] int pageSize = 50) => Ok(await service.ListAsync(companyId, branchId, status, receivedFromType, page, pageSize)); [HttpPost] public async Task Create(CreateReceivedChequeRequest request, CancellationToken ct) { try { return Ok(await service.CreateAsync(request, ct)); } catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } } [HttpPut("{id:guid}/status")] public async Task UpdateStatus(Guid id, UpdateReceivedChequeStatusRequest request, CancellationToken ct) { try { var result = await service.UpdateStatusAsync(id, request, ct); return result is null ? NotFound() : Ok(result); } catch (InvalidOperationException ex) { return BadRequest(new { error = ex.Message }); } } }