#pragma once #include "domain/entities/Item.h" #include #include #include #include namespace nxl::autostore::application { class IItemRepository { public: virtual ~IItemRepository() = default; virtual domain::Item::Id_t save(const domain::Item& item) = 0; virtual std::optional findById(std::string_view id) = 0; virtual std::vector findByUser(std::string_view userId) = 0; virtual std::vector findAll() = 0; virtual void remove(std::string_view id) = 0; }; } // namespace nxl::autostore::application