package ports

import (
	"context"

	"github.com/pingcap-inc/nexuscrm-contract/pkg/runtime/permissionstatev1"
)

// EffectivePermissionSnapshotRepository loads one version-qualified,
// indivisible system/custom permission aggregate for an authoritative subject.
type EffectivePermissionSnapshotRepository interface {
	LoadCurrentEffectivePermissionSnapshot(
		ctx context.Context,
		subject permissionstatev1.Subject,
	) (permissionstatev1.EffectiveSnapshot, error)
}
