package interfaces import ( "context" "autostore/internal/domain/entities" "autostore/internal/domain/specifications" "autostore/internal/domain/value_objects" ) type IItemRepository interface { Save(ctx context.Context, item *entities.ItemEntity) error FindByID(ctx context.Context, id value_objects.ItemID) (*entities.ItemEntity, error) FindByUserID(ctx context.Context, userID value_objects.UserID) ([]*entities.ItemEntity, error) FindWhere(ctx context.Context, spec specifications.Specification[*entities.ItemEntity]) ([]*entities.ItemEntity, error) Delete(ctx context.Context, id value_objects.ItemID) error Exists(ctx context.Context, id value_objects.ItemID) (bool, error) }