kima2/src/core/marketplace.h

46 lines
886 B
C
Raw Normal View History

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
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