2018-07-13 13:04:19 +02:00
|
|
|
#ifndef MARKETPLACE_H
|
|
|
|
#define MARKETPLACE_H
|
|
|
|
|
|
|
|
#include "article.h"
|
|
|
|
#include "sale.h"
|
|
|
|
#include "seller.h"
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
2018-07-20 11:52:26 +02:00
|
|
|
namespace
|
|
|
|
{
|
|
|
|
using SellersVec = std::vector<std::unique_ptr<Seller>>;
|
|
|
|
using SalesVec = std::vector<std::unique_ptr<Sale>>;
|
2018-07-21 19:24:56 +02:00
|
|
|
using BasketVec = std::vector<std::unique_ptr<Article>>;
|
2018-07-20 11:52:26 +02:00
|
|
|
} // namespace
|
|
|
|
|
|
|
|
struct Basket {
|
|
|
|
};
|
|
|
|
|
2018-07-13 13:04:19 +02:00
|
|
|
class Marketplace
|
|
|
|
{
|
|
|
|
public:
|
2018-07-16 12:00:17 +02:00
|
|
|
Marketplace();
|
2018-07-21 21:18:22 +02:00
|
|
|
|
2018-07-18 14:36:53 +02:00
|
|
|
void storeToDb(bool onlyDelete = false);
|
2018-07-13 13:04:19 +02:00
|
|
|
void loadFromDb();
|
2018-07-22 20:10:22 +02:00
|
|
|
|
2018-07-20 11:52:26 +02:00
|
|
|
SellersVec& getSellers();
|
2018-07-16 18:04:25 +02:00
|
|
|
int getNextSellerNo();
|
2018-07-22 20:10:22 +02:00
|
|
|
int getNextArticleNo();
|
2018-07-17 15:32:16 +02:00
|
|
|
int getNumSellersDelete();
|
2018-07-22 20:10:22 +02:00
|
|
|
BasketVec& getBasket();
|
|
|
|
|
2018-07-18 09:00:46 +02:00
|
|
|
void sortSellers();
|
2018-07-20 22:07:42 +02:00
|
|
|
Seller* findSellerWithSellerNo(int sellerNo);
|
2018-07-21 19:24:56 +02:00
|
|
|
void addArticleToBasket(std::unique_ptr<Article> article);
|
2018-07-21 21:18:22 +02:00
|
|
|
size_t basketSize();
|
|
|
|
void finishCurrentSale();
|
2018-07-16 12:00:17 +02:00
|
|
|
|
2018-07-13 13:04:19 +02:00
|
|
|
private:
|
2018-07-20 11:52:26 +02:00
|
|
|
SellersVec sellers_;
|
|
|
|
SalesVec sales_;
|
2018-07-20 22:10:05 +02:00
|
|
|
BasketVec basket_;
|
2018-07-13 13:04:19 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|