#ifndef CAMPSETTINGS_H
#define CAMPSETTINGS_H

#include <QObject>
#include <enums.h>
#include <QDecDouble.hh>
#include <QSharedPointer>

class CampSettings : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QDecDouble accFee READ accFee WRITE setAccFee)
    Q_PROPERTY(int accFeeStartAge READ accFeeStartAge WRITE setAccFeeStartAge)
    Q_PROPERTY(int accFeeEndAge READ accFeeEndAge WRITE setAccFeeEndAge)
    Q_PROPERTY(Enums::Rounding rounding READ rounding WRITE setRounding)
    Q_PROPERTY(int decimalPlaces READ decimalPlaces WRITE setDecimalPlaces)
    Q_PROPERTY(QString accFeeText READ accFeeText WRITE setAccFeeText)

public:
    explicit CampSettings(QObject *parent = 0);

    QDecDouble accFee() const;
    void setAccFee(QDecDouble accFee);

    Enums::Rounding rounding() const;
    void setRounding(const Enums::Rounding &rounding);

    int decimalPlaces() const;
    void setDecimalPlaces(int decimalPlaces);

    int accFeeStartAge() const;
    void setAccFeeStartAge(int accFeeStartAge);

    int accFeeEndAge() const;
    void setAccFeeEndAge(int accFeeEndAge);

    QString accFeeText() const;
    void setAccFeeText(const QString &accFeeText);

private:
    int m_accFee;
    int m_accFeeStartAge;
    int m_accFeeEndAge;
    QString m_accFeeText;
    Enums::Rounding m_rounding;
    int m_decimalPlaces;
};

typedef QSharedPointer<CampSettings> CampSettingsPtr;

#endif // CAMPSETTINGS_H
