package com.tcm.training.admin.agent.controller; import com.tcm.training.admin.agent.dto.ProvincialAgentSaveRequest; import com.tcm.training.admin.agent.service.ProvincialAgentAppService; import com.tcm.training.admin.agent.vo.ProvincialAgentDetailVO; import com.tcm.training.admin.agent.vo.ProvincialAgentListItemVO; import com.tcm.training.admin.common.ApiResponse; import com.tcm.training.admin.common.PageResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @Validated @RestController @RequestMapping({"/api/v1", "/api"}) public class ProvincialAgentController { private final ProvincialAgentAppService service; public ProvincialAgentController(ProvincialAgentAppService service) { this.service = service; } @GetMapping("/provincial-agents") public ApiResponse> page(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int pageSize, @RequestParam(required = false) String agentName, @RequestParam(required = false) String regionCode) { return ApiResponse.ok(service.page(page, pageSize, agentName, regionCode)); } @GetMapping("/provincial-agents/{id}") public ApiResponse detail(@PathVariable Long id) { return ApiResponse.ok(service.detail(id)); } @PostMapping("/provincial-agents") public ApiResponse create(@Valid @RequestBody ProvincialAgentSaveRequest r) { return ApiResponse.ok(service.create(r)); } @PutMapping("/provincial-agents/{id}") public ApiResponse update(@PathVariable Long id, @Valid @RequestBody ProvincialAgentSaveRequest r) { return ApiResponse.ok(service.update(id, r)); } @DeleteMapping("/provincial-agents/{id}") public ApiResponse delete(@PathVariable Long id) { service.delete(id); return ApiResponse.ok(null); } }