#ifndef TARIFF_CUSTOMER_H_INCLUDED
#define TARIFF_CUSTOMER_H_INCLUDED

#include <QString>
#include <QDebug>
#include <QDebugStateSaver>

struct ATBCustomer {
    enum class CustomerType {ADULT=1000, CHILD, TEEN};

    ATBCustomer() = default;

    int cust_id;
    CustomerType cust_type;
    QString cust_label;

    friend QDebug operator<<(QDebug debug, ATBCustomer const &customer) {
        QDebugStateSaver saver(debug);

        debug.nospace() << "CUSTOMER" << "\n";

        switch(customer.cust_type) {
        case ATBCustomer::CustomerType::ADULT:
            debug.nospace()
                << "   cust_id: " << customer.cust_id << "\n"
                << " cust_type: " << "CustomerType::ADULT" << "\n"
                << "cust_label: " << customer.cust_label << "\n";
            break;
        case ATBCustomer::CustomerType::CHILD:
            debug.nospace()
                << "   cust_id: " << customer.cust_id << "\n"
                << " cust_type: " << "CustomerType::CHILD" << "\n"
                << "cust_label: " << customer.cust_label << "\n";
            break;
        case ATBCustomer::CustomerType::TEEN:
            debug.nospace()
                << "   cust_id: " << customer.cust_id << "\n"
                << " cust_type: " << "CustomerType::TEEN" << "\n"
                << "cust_label: " << customer.cust_label << "\n";
            break;
        }

        return debug;
    }
};

#endif // TARIFF_CUSTOMER_H_INCLUDED