package repository import ( "context" "rag/file-system/internal/domain/model" ) type ShareRepository interface { Create(ctx context.Context, share *model.ShareLink) error GetByToken(ctx context.Context, token string) (*model.ShareLink, error) GetByID(ctx context.Context, id string) (*model.ShareLink, error) Delete(ctx context.Context, id string, createdBy string) error IncrementDownloadCount(ctx context.Context, token string) error ListByResource(ctx context.Context, resourceType string, resourceID string) ([]model.ShareLink, error) }