Files
amnezia-client/client/ui/models/api/apiBenefitsModel.h
vkamn 78f504e35c feat: new services description (#2412)
* feat: iap for apple now use storekit2

* fix: fixed error 101 on connection event

* feat: enhance StoreKit2Helper to handle entitlements and improve restore service from App Store functionality

* chore: add isInAppPurchase and isTestPurchase in primary config

* refactor: use end_date from primary config for renew ui

* fix: hide renew button for free

* fix: hide renew button for appstore purchases

* feat: add new premium info page

* feat: add new free info page

* chore: minor fixes

* refactor: move plan and benefits into separate models

* fix: fixed expired status when configs without an end date

* feat: add trial api support

* chore: add api message parsing for 422 error

* feat: move privacy policy and term of use to gateway

* feat: add iap support for new premium info page

* chore: minor fixes

* chore: minor fix

* chore: minor fixes

* feat: additional parsing for storekit subscription plans

* chore: minor codestyle fixes

* chore: simplify benefits

* chore: hide extend buttons on external premium

* feat: add trial error processing

* fix: remove wrong check from tiral handler

* chore: cleanup

---------

Co-authored-by: spectrum <yyy@amnezia.org>
2026-04-08 12:21:12 +08:00

44 lines
916 B
C++

#ifndef APIBENEFITSMODEL_H
#define APIBENEFITSMODEL_H
#include <QAbstractListModel>
#include <QJsonArray>
#include <QString>
#include <QVector>
class ApiBenefitsModel : public QAbstractListModel
{
Q_OBJECT
public:
enum Roles {
IconRole = Qt::UserRole + 1,
TitleRole,
BodyRole,
AccentRole
};
Q_ENUM(Roles)
explicit ApiBenefitsModel(QObject *parent = nullptr);
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
QHash<int, QByteArray> roleNames() const override;
void updateModel(const QJsonArray &benefits);
void clear();
private:
struct ServiceBenefitItem
{
QString icon;
QString title;
QString body;
bool accent = false;
};
QVector<ServiceBenefitItem> m_serviceBenefits;
};
#endif