NewClaimEvent.java
package uk.gov.dhsc.htbhf.claimant.service.audit;
import lombok.Builder;
import uk.gov.dhsc.htbhf.claimant.entity.Claim;
import uk.gov.dhsc.htbhf.claimant.model.ClaimStatus;
import uk.gov.dhsc.htbhf.eligibility.model.EligibilityStatus;
import uk.gov.dhsc.htbhf.logging.event.Event;
import java.time.LocalDateTime;
import java.util.Map;
import java.util.UUID;
import static uk.gov.dhsc.htbhf.claimant.service.audit.ClaimEventMetadataKey.CLAIM_ID;
import static uk.gov.dhsc.htbhf.claimant.service.audit.ClaimEventMetadataKey.CLAIM_STATUS;
import static uk.gov.dhsc.htbhf.claimant.service.audit.ClaimEventMetadataKey.ELIGIBILITY_STATUS;
import static uk.gov.dhsc.htbhf.claimant.service.audit.ClaimEventMetadataKey.USER;
public class NewClaimEvent extends Event {
public NewClaimEvent(Claim claim, String user) {
this(claim.getId(), claim.getClaimStatus(), claim.getEligibilityStatus(), user);
}
@Builder
public NewClaimEvent(UUID claimId, ClaimStatus claimStatus, EligibilityStatus eligibilityStatus, String user) {
super(
ClaimEventType.NEW_CLAIM,
LocalDateTime.now(),
constructMetadata(claimId, claimStatus, eligibilityStatus, user)
);
}
private static Map<String, Object> constructMetadata(UUID claimId, ClaimStatus claimStatus, EligibilityStatus eligibilityStatus, String user) {
return Map.of(
USER.getKey(), user,
CLAIM_ID.getKey(), claimId,
CLAIM_STATUS.getKey(), claimStatus,
ELIGIBILITY_STATUS.getKey(), eligibilityStatus
);
}
}