package store

import (
	"context"

	"bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/contracts/graph"
)

// ArtifactStore defines graph artifact persistence boundaries.
type ArtifactStore interface {
	SaveArtifact(ctx context.Context, artifact graph.Artifact) (artifactID, artifactURI string, err error)
	GetArtifact(ctx context.Context, artifactID string) (graph.Artifact, error)
	FindArtifactByCommitFile(ctx context.Context, repoID, commitSHA, filePath string) (graph.Artifact, string, error)
	FindArtifactBySnapshotFile(ctx context.Context, repoID, snapshotID, filePath string) (graph.Artifact, string, error)
	SaveDelta(ctx context.Context, delta graph.Delta) (deltaID, deltaURI string, err error)
}
