package com.dalab.policyengine.service; import java.util.UUID; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import com.dalab.common.event.AssetChangeEvent; import com.dalab.policyengine.dto.PolicyEvaluationOutputDTO; import com.dalab.policyengine.dto.PolicyEvaluationRequestDTO; import com.dalab.policyengine.dto.PolicyEvaluationSummaryDTO; public interface IPolicyEvaluationService { PolicyEvaluationOutputDTO evaluatePolicyForAsset(UUID policyId, PolicyEvaluationRequestDTO evaluationRequest, UUID triggeredByUserId); // Method expected by controller - delegates to evaluatePolicyForAsset PolicyEvaluationOutputDTO triggerPolicyEvaluation(UUID policyId, PolicyEvaluationRequestDTO evaluationRequest, UUID triggeredByUserId); Page getPolicyEvaluations(Pageable pageable, UUID policyId, String targetAssetId, String status); PolicyEvaluationOutputDTO getPolicyEvaluationById(UUID evaluationId); // Internal method for Kafka consumer or scheduled tasks void evaluatePolicyForAssetInternal(AssetChangeEvent assetChangeEvent, UUID eventInitiatorId); }