package dev.lions.unionflow.client.service;

import dev.lions.unionflow.client.api.dto.ComplianceSnapshotDto;
import dev.lions.unionflow.client.security.AuthHeaderFactory;
import jakarta.ws.rs.Consumes;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
import java.util.UUID;
import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;

@RegisterRestClient(configKey = "unionflow-api")
@RegisterClientHeaders(AuthHeaderFactory.class)
@Path("/api/compliance/dashboard")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface ComplianceDashboardRestClient {

  /** Snapshot pour l'organisation active (résolue par le backend via header X-Active-Organisation-Id). */
  @GET
  ComplianceSnapshotDto getSnapshotCurrent();

  /** Snapshot d'une organisation arbitraire — restreint SUPER_ADMIN backend. */
  @GET
  @Path("/{organisationId}")
  ComplianceSnapshotDto getSnapshotOf(@PathParam("organisationId") UUID organisationId);
}
