StorageBinMapper.java
package com.v1rex.liftnexus.storagebin.mapper;
import com.v1rex.liftnexus.storagebin.domain.Coordinate3D;
import com.v1rex.liftnexus.storagebin.domain.StorageBin;
import com.v1rex.liftnexus.storagebin.dto.CoordinateDto;
import com.v1rex.liftnexus.storagebin.dto.StorageBinRequest;
import com.v1rex.liftnexus.storagebin.dto.StorageBinResponse;
import org.springframework.stereotype.Component;
@Component
public class StorageBinMapper {
public StorageBin toEntity(StorageBinRequest request) {
if (request == null) return null;
Coordinate3D domainCoordinate = null;
if (request.coordinate() != null) {
domainCoordinate =
new Coordinate3D(
request.coordinate().x(), request.coordinate().y(), request.coordinate().z());
}
return StorageBin.builder()
.binCode(request.binCode())
.coordinate(domainCoordinate)
.zoneType(request.zoneType())
.maxWeightCapacityKg(request.maxWeightCapacityKg())
.build();
}
public StorageBinResponse toResponse(StorageBin entity) {
if (entity == null) return null;
CoordinateDto dtoCoordinate = null;
if (entity.getCoordinate() != null) {
dtoCoordinate =
new CoordinateDto(
entity.getCoordinate().getX(),
entity.getCoordinate().getY(),
entity.getCoordinate().getZ());
}
return new StorageBinResponse(
entity.getId(),
entity.getBinCode(),
dtoCoordinate,
entity.getZoneType(),
entity.getMaxWeightCapacityKg());
}
}