#ifndef TARIFF_PERMIT_TYPE_H_INCLUDED #define TARIFF_PERMIT_TYPE_H_INCLUDED #include enum class PERMIT_TYPE : quint8 { SHORT_TERM_PARKING, DAY_TICKET, SZEGED_START, SZEGED_STOP, DAY_TICKET_ADULT, DAY_TICKET_TEEN, DAY_TICKET_CHILD, FOOD_STAMP, INVALID }; struct PermitType { PERMIT_TYPE m_permitType; PermitType() { m_permitType = PERMIT_TYPE::INVALID; } PermitType(int permitType) { switch(permitType) { case 0: m_permitType = PERMIT_TYPE::SHORT_TERM_PARKING; break; case 1: m_permitType = PERMIT_TYPE::DAY_TICKET; break; case 2: m_permitType = PERMIT_TYPE::SZEGED_START; break; case 3: m_permitType = PERMIT_TYPE::SZEGED_STOP; break; case 4: m_permitType = PERMIT_TYPE::DAY_TICKET_ADULT; break; case 5: m_permitType = PERMIT_TYPE::DAY_TICKET_TEEN; break; case 6: m_permitType = PERMIT_TYPE::DAY_TICKET_CHILD; break; case 7: m_permitType = PERMIT_TYPE::FOOD_STAMP; break; default: m_permitType = PERMIT_TYPE::INVALID; } } PermitType(PERMIT_TYPE permitType) : m_permitType(permitType) {} void set(PERMIT_TYPE p) { m_permitType = p; } PERMIT_TYPE get() const { return m_permitType; } operator PERMIT_TYPE() const { return m_permitType; } operator int () const { switch(m_permitType) { case PERMIT_TYPE::SHORT_TERM_PARKING: return 0; case PERMIT_TYPE::DAY_TICKET: return 1; case PERMIT_TYPE::SZEGED_START: return 2; case PERMIT_TYPE::SZEGED_STOP: return 3; case PERMIT_TYPE::DAY_TICKET_ADULT: return 4; case PERMIT_TYPE::DAY_TICKET_CHILD: return 5; case PERMIT_TYPE::DAY_TICKET_TEEN: return 6; case PERMIT_TYPE::FOOD_STAMP: return 7; default: break; } return 7; } operator QString () { switch(m_permitType) { case PERMIT_TYPE::DAY_TICKET: return QString("DAY_TICKET"); case PERMIT_TYPE::DAY_TICKET_ADULT: return QString("DAY_TICKET_ADULT"); case PERMIT_TYPE::DAY_TICKET_CHILD: return QString("DAY_TICKET_CHILD"); case PERMIT_TYPE::DAY_TICKET_TEEN: return QString("DAY_TICKET_TEEN"); case PERMIT_TYPE::SHORT_TERM_PARKING: return QString("SHORT_TERM_PARKING"); case PERMIT_TYPE::SZEGED_START: return QString("SZEGED_START"); case PERMIT_TYPE::SZEGED_STOP: return QString("SZEGED_STOP"); case PERMIT_TYPE::FOOD_STAMP: return QString("FOOD_STAMP"); default: break; } return QString("INVALID"); } operator QString () const { switch(m_permitType) { case PERMIT_TYPE::DAY_TICKET: return QString("DAY_TICKET"); case PERMIT_TYPE::DAY_TICKET_ADULT: return QString("DAY_TICKET_ADULT"); case PERMIT_TYPE::DAY_TICKET_CHILD: return QString("DAY_TICKET_CHILD"); case PERMIT_TYPE::DAY_TICKET_TEEN: return QString("DAY_TICKET_TEEN"); case PERMIT_TYPE::SHORT_TERM_PARKING: return QString("SHORT_TERM_PARKING"); case PERMIT_TYPE::SZEGED_START: return QString("SZEGED_START"); case PERMIT_TYPE::SZEGED_STOP: return QString("SZEGED_STOP"); case PERMIT_TYPE::FOOD_STAMP: return QString("FOOD_STAMP"); default: break; } return QString("INVALID"); } }; #endif // TARIFF_PERMIT_TYPE_H_INCLUDED