Spaces:
Build error
Build error
File size: 1,704 Bytes
688925d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package com.dalab.autocompliance.model.mapper;
import java.time.LocalDateTime;
import java.util.UUID;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
import com.dalab.autocompliance.dto.ControlEvaluationRequestDTO;
import com.dalab.autocompliance.dto.ControlEvaluationResponseDTO;
import com.dalab.autocompliance.model.entity.ControlEvaluationJobEntity;
/**
* Mapper interface for converting between ControlEvaluationJobEntity and DTOs.
*/
@Mapper(imports = {UUID.class, LocalDateTime.class})
public interface ControlEvaluationJobMapper {
ControlEvaluationJobMapper INSTANCE = Mappers.getMapper(ControlEvaluationJobMapper.class);
// To DTO (ControlEvaluationResponseDTO is simpler, doesn't carry all entity details by default)
@Mapping(target = "targetedAssetCount", expression = "java(entity.getTargetAssetIds() != null ? entity.getTargetAssetIds().size() : 0)")
ControlEvaluationResponseDTO toResponseDto(ControlEvaluationJobEntity entity);
// From Request DTO to Entity
@Mapping(target = "jobId", expression = "java(UUID.randomUUID().toString())")
@Mapping(target = "submittedAt", expression = "java(LocalDateTime.now())")
@Mapping(target = "status", constant = "QUEUED")
@Mapping(target = "startedAt", ignore = true)
@Mapping(target = "completedAt", ignore = true)
@Mapping(target = "message", ignore = true)
ControlEvaluationJobEntity fromRequestDto(ControlEvaluationRequestDTO requestDto, String controlId);
// If you need a more detailed DTO for job status (like ReportJobStatusDTO), you'd create another one.
// For now, the response DTO is used for the immediate POST response.
} |