package com.cloudhandson.ddsbackoffice.service;

import com.cloudhandson.ddsbackoffice.domain.DdsPublishedProtectionSpec;
import com.cloudhandson.ddsbackoffice.domain.DdsValidationEvidence;
import com.cloudhandson.ddsbackoffice.domain.DdsValidationFixture;
import java.util.List;
import java.util.Optional;

/** Persistence boundary for immutable publication fingerprints and validation evidence. */
public interface DdsProtectionEvidenceStore {

  Optional<DdsPublishedProtectionSpec> latestPublished(String path, String subjectKey);

  Optional<DdsValidationEvidence> latestValidation(String path, String subjectKey);

  List<DdsValidationFixture> activeFixtures(String path);

  void recordPublished(DdsPublishedProtectionSpec spec, String actor, String note);

  void recordValidation(String runId, String fixtureId, String path, String subjectKey,
      boolean expectedVisible, boolean actualVisible, String fingerprint);
}
