#pragma once #include "application/interfaces/IItemRepository.h" #include #include #include namespace nxl::autostore::infrastructure { class FileItemRepository : public application::IItemRepository { public: explicit FileItemRepository(std::string_view dbPath); void save(const domain::Item& item) override; std::optional findById(std::string_view id) override; std::vector findByUser(std::string_view userId) override; std::vector findAll() override; void remove(std::string_view id) override; private: void load(); void persist(); std::string dbPath; std::vector items; std::mutex mtx; }; } // namespace nxl::autostore::infrastructure