package com.oms.controller; import com.oms.common.ApiResponse; import com.oms.dto.PurchaseOrderDTO; import com.oms.entity.PurchaseOrder; import com.oms.service.PurchaseOrderService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController @RequestMapping("/purchase/orders") @RequiredArgsConstructor public class PurchaseOrderController { private final PurchaseOrderService purchaseOrderService; @GetMapping public ApiResponse> getOrders( @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "20") int size) { return ApiResponse.success(purchaseOrderService.getPage(page, size).getRecords()); } @GetMapping("/all") public ApiResponse> getAll() { return ApiResponse.success(purchaseOrderService.getAll()); } @GetMapping("/{id}") public ApiResponse getById(@PathVariable Long id) { return ApiResponse.success(purchaseOrderService.getDtoById(id)); } @GetMapping("/po-no/{poNo}") public ApiResponse getByPoNo(@PathVariable String poNo) { return ApiResponse.success(purchaseOrderService.getByPoNo(poNo)); } @PostMapping public ApiResponse create(@RequestBody PurchaseOrder purchaseOrder) { return ApiResponse.success(purchaseOrderService.save(purchaseOrder)); } @PutMapping("/{id}") public ApiResponse update(@PathVariable Long id, @RequestBody PurchaseOrder purchaseOrder) { purchaseOrder.setId(id); purchaseOrderService.update(purchaseOrder); return ApiResponse.success(null); } @DeleteMapping("/{id}") public ApiResponse delete(@PathVariable Long id) { purchaseOrderService.delete(id); return ApiResponse.success(null); } @PostMapping("/{id}/submit") public ApiResponse submit(@PathVariable Long id) { purchaseOrderService.submit(id); return ApiResponse.success(null); } }