diff options
Diffstat (limited to 'interchange/product.hxx')
-rw-r--r-- | interchange/product.hxx | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/interchange/product.hxx b/interchange/product.hxx new file mode 100644 index 0000000..a7f3587 --- /dev/null +++ b/interchange/product.hxx @@ -0,0 +1,63 @@ +#ifndef INTERCHANGE_PRODUCT_HXX +#define INTERCHANGE_PRODUCT_HXX + +#include <interchange.h> + +namespace Interchange { + + struct Product + { + enum ProductRoles { + SkuRole = Qt::UserRole + 1, + DescriptionRole, + CommentRole, + ThumbRole, + ImageRole, + PriceRole, + ProdGroupRole, + WeightRole, + AuthorRole, + CrossSellRole + }; + + Product() {} + Product(struct interchange_product* product) : + price{product->price}, + weight{product->weight} + { + if (product->sku) + sku = QString{product->sku}; + if (product->description) + description = QString{product->description}; + if (product->comment) + comment = QString{product->comment}; + if (product->thumb) + thumb = QString{product->thumb}; + if (product->image) + image = QString{product->image}; + if (product->prod_group) + prodGroup = QString{product->prod_group}; + if (product->author) + author = QString{product->author}; + if (product->crosssell) { + auto crosssell = product->crosssell; + for (size_t i = 0; i < crosssell->length; i++) + crossSell << QString{crosssell->skus[i]}; + } + } + + QString sku; + QString description; + QString comment; + QString thumb; + QString image; + double price; + QString prodGroup; + double weight; + QString author; + QStringList crossSell; + }; + +} + +#endif |