package dul

import "context"

type Repository interface {
	Create(ctx context.Context, row *DUL) error
	Update(ctx context.Context, row *DUL) error
	Delete(ctx context.Context, id []byte) error
	GetByID(ctx context.Context, id []byte) (*DUL, error)
	List(ctx context.Context, filter, sort string, limit, offset int, baseIDs [][]byte) ([]DUL, int64, error)
}

type TransactionalRepository interface {
	WithTransaction(ctx context.Context, fn func(repo Repository) error) error
}
