You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
678 B
27 lines
678 B
#pragma once |
|
|
|
#include "domain/entities/Item.h" |
|
#include "domain/polices/ItemExpirationPolicy.h" |
|
#include "application/interfaces/IItemRepository.h" |
|
#include "application/interfaces/IClock.h" |
|
#include "application/interfaces/IOrderService.h" |
|
|
|
namespace nxl::autostore::application { |
|
|
|
class AddItem |
|
{ |
|
public: |
|
virtual ~AddItem() = default; |
|
|
|
AddItem(IItemRepository& itemRepository, IClock& clock, |
|
IOrderService& orderService); |
|
domain::Item::Id_t execute(domain::Item&& item); |
|
|
|
private: |
|
IItemRepository& itemRepository; |
|
IClock& clock; |
|
IOrderService& orderService; |
|
domain::ItemExpirationPolicy expirationPolicy; |
|
}; |
|
|
|
} // namespace nxl::autostore::application
|