package com.baiyue.warehouse.controller; import com.baiyue.common.core.api.ApiResponse; import com.baiyue.warehouse.dto.PalletTransitionRequests; import com.baiyue.warehouse.dto.PalletTransitionResponse; import com.baiyue.warehouse.security.InternalServiceTokenGuard; import com.baiyue.warehouse.service.WarehousePalletTransitionService; import jakarta.annotation.Resource; import jakarta.validation.Valid; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/internal/v1/pda-pallet-transitions") public class InternalPdaPalletTransitionController { @Resource private InternalServiceTokenGuard tokenGuard; @Resource private WarehousePalletTransitionService service; @PostMapping("/{palletId}") public ApiResponse apply( @RequestHeader(value = "X-Internal-Service-Token", required = false) String token, @PathVariable long palletId, @Valid @RequestBody PalletTransitionRequests.Apply request) { tokenGuard.verify(token); return ApiResponse.success(service.apply(palletId, request)); } @PostMapping("/{palletId}/{operationKey}/compensate") public ApiResponse compensate( @RequestHeader(value = "X-Internal-Service-Token", required = false) String token, @PathVariable long palletId, @PathVariable String operationKey, @Valid @RequestBody PalletTransitionRequests.Compensate request) { tokenGuard.verify(token); return ApiResponse.success(service.compensate(palletId, operationKey, request)); } }