Add Interpolation, Prepaid and CarryOver structures to streamline Json-File layout.
This commit is contained in:
		
							
								
								
									
										70
									
								
								library/include/mobilisis/tariff_carryover.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								library/include/mobilisis/tariff_carryover.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
			
		||||
#ifndef TARIFF_CARRYOVER_H_INCLUDED
 | 
			
		||||
#define TARIFF_CARRYOVER_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <QTime>
 | 
			
		||||
 | 
			
		||||
struct ATBCarryOver {
 | 
			
		||||
    struct week {
 | 
			
		||||
        int day;
 | 
			
		||||
        bool seemless;
 | 
			
		||||
        bool never;
 | 
			
		||||
        QTime static_start;
 | 
			
		||||
        QTime static_end;
 | 
			
		||||
    } carryover[8];
 | 
			
		||||
 | 
			
		||||
    int id;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    friend QDebug operator<<(QDebug debug, ATBCarryOver const &co) {
 | 
			
		||||
        QDebugStateSaver saver(debug);
 | 
			
		||||
 | 
			
		||||
        debug.nospace()
 | 
			
		||||
            << "                 id:" << co.id << "\n"
 | 
			
		||||
            << "        **** Monday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Monday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Monday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Monday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Monday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Monday].never << "\n"
 | 
			
		||||
            << "        **** Tuesday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Tuesday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Tuesday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Tuesday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Tuesday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Tuesday].never << "\n"
 | 
			
		||||
            << "        **** Wednesday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Wednesday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Wednesday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Wednesday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Wednesday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Wednesday].never << "\n"
 | 
			
		||||
            << "        **** Thursday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Thursday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Thursday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Thursday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Thursday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Thursday].never << "\n"
 | 
			
		||||
            << "        **** Friday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Friday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Friday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Friday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Friday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Friday].never << "\n"
 | 
			
		||||
            << "        **** Saturday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Saturday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Saturday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Saturday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Saturday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Saturday].never << "\n"
 | 
			
		||||
            << "        **** Sunday **** \n"
 | 
			
		||||
            << "                day: " << co.carryover[(int)Qt::Sunday].day << "\n"
 | 
			
		||||
            << "       static_start: " << co.carryover[(int)Qt::Sunday].static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << co.carryover[(int)Qt::Sunday].static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << co.carryover[(int)Qt::Sunday].seemless << "\n"
 | 
			
		||||
            << "              never: " << co.carryover[(int)Qt::Sunday].never << "\n";
 | 
			
		||||
 | 
			
		||||
        return debug;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // TARIFF_CARRYOVER_H_INCLUDED
 | 
			
		||||
							
								
								
									
										89
									
								
								library/include/mobilisis/tariff_interpolation.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								library/include/mobilisis/tariff_interpolation.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
			
		||||
#ifndef TARIFF_INTERPOLATION_H_INCLUDED
 | 
			
		||||
#define TARIFF_INTERPOLATION_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <QTime>
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
struct ATBInterpolation {
 | 
			
		||||
 | 
			
		||||
    enum Type {
 | 
			
		||||
        NO_INTERPOLATION = 1,
 | 
			
		||||
        STATIC_WALLCLOCK_TIME_VALUES = 2,
 | 
			
		||||
        STATIC_TIMEPOINT_AND_DURATION = 3,
 | 
			
		||||
        DYNAMIC_TIMEPOINT_AND_STATIC_DURATION = 4,
 | 
			
		||||
        DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION = 5,
 | 
			
		||||
        DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE = 6,
 | 
			
		||||
        DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME = 7
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    static QString name(int i) {
 | 
			
		||||
        switch(i) {
 | 
			
		||||
        case (int)(NO_INTERPOLATION):
 | 
			
		||||
            return QString("%1: NO_INTERPOLATION").arg(i);
 | 
			
		||||
        case (int)(STATIC_WALLCLOCK_TIME_VALUES):
 | 
			
		||||
            return QString("%1: STATIC_WALLCLOCK_TIME_VALUES").arg(i);
 | 
			
		||||
        case (int)(STATIC_TIMEPOINT_AND_DURATION):
 | 
			
		||||
            return QString("%1: STATIC_TIMEPOINT_AND_DURATION").arg(i);
 | 
			
		||||
        case (int)(DYNAMIC_TIMEPOINT_AND_STATIC_DURATION):
 | 
			
		||||
            return QString("%1: DYNAMIC_TIMEPOINT_AND_STATIC_DURATION").arg(i);
 | 
			
		||||
        case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION):
 | 
			
		||||
            return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_DURATION").arg(i);
 | 
			
		||||
        case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE):
 | 
			
		||||
            return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_PRICE").arg(i);
 | 
			
		||||
        case (int)(DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME):
 | 
			
		||||
            return QString("%1: DYNAMIC_ABSTRACT_TIMEPOINT_AND_STATIC_END_TIME").arg(i);
 | 
			
		||||
        default:;
 | 
			
		||||
        }
 | 
			
		||||
        return "ERROR";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    explicit ATBInterpolation()
 | 
			
		||||
      : id(0)
 | 
			
		||||
      , static_start(QTime())
 | 
			
		||||
      , static_end(QTime())
 | 
			
		||||
      , static_start_str(QString())
 | 
			
		||||
      , static_end_str(QString())
 | 
			
		||||
      , static_duration(0)
 | 
			
		||||
      , dynamic_start(QTime())
 | 
			
		||||
      , dynamic_end(QTime())
 | 
			
		||||
      , dynamic_start_str(QString())
 | 
			
		||||
      , dynamic_end_str(QString())
 | 
			
		||||
      , dynamic_duration(0)
 | 
			
		||||
      , dynamic_until_price(0) {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    int id;
 | 
			
		||||
    QTime static_start;
 | 
			
		||||
    QTime static_end;
 | 
			
		||||
    QString static_start_str;
 | 
			
		||||
    QString static_end_str;
 | 
			
		||||
    int static_duration;
 | 
			
		||||
    QTime dynamic_start;
 | 
			
		||||
    QTime dynamic_end;
 | 
			
		||||
    QString dynamic_start_str;
 | 
			
		||||
    QString dynamic_end_str;
 | 
			
		||||
    int dynamic_duration;
 | 
			
		||||
    int dynamic_until_price;
 | 
			
		||||
 | 
			
		||||
    friend QDebug operator<<(QDebug debug, ATBInterpolation const &i) {
 | 
			
		||||
        QDebugStateSaver saver(debug);
 | 
			
		||||
 | 
			
		||||
        debug.nospace()
 | 
			
		||||
            << "                 id: " << name(i.id) << "\n"
 | 
			
		||||
            << "       static_start: " << i.static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << i.static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "   static_start_str: " << i.static_start_str << "\n"
 | 
			
		||||
            << "     static_end_str: " << i.static_end_str << "\n"
 | 
			
		||||
            << "    static_duration: " << i.static_duration << "\n"
 | 
			
		||||
            << "      dynamic_start: " << i.dynamic_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "        dynamic_end: " << i.dynamic_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "  dynamic_start_str: " << i.dynamic_start_str << "\n"
 | 
			
		||||
            << "    dynamic_end_str: " << i.dynamic_end_str << "\n"
 | 
			
		||||
            << "   dynamic_duration: " << i.dynamic_duration << "\n"
 | 
			
		||||
            << "dynamic_until_price: " << i.dynamic_until_price << "\n";
 | 
			
		||||
 | 
			
		||||
        return debug;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // TARIFF_INTERPOLATION_H_INCLUDED
 | 
			
		||||
							
								
								
									
										29
									
								
								library/include/mobilisis/tariff_prepaid.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								library/include/mobilisis/tariff_prepaid.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
#ifndef TARIFF_PREPAID_H_INCLUDED
 | 
			
		||||
#define TARIFF_PREPAID_H_INCLUDED
 | 
			
		||||
 | 
			
		||||
#include <QTime>
 | 
			
		||||
#include <QString>
 | 
			
		||||
 | 
			
		||||
struct ATBPrepaid {
 | 
			
		||||
    explicit ATBPrepaid() = default;
 | 
			
		||||
    int id;
 | 
			
		||||
    bool anytime;
 | 
			
		||||
    bool never;
 | 
			
		||||
    QTime static_start;
 | 
			
		||||
    QTime static_end;
 | 
			
		||||
 | 
			
		||||
    friend QDebug operator<<(QDebug debug, ATBPrepaid const &pp) {
 | 
			
		||||
        QDebugStateSaver saver(debug);
 | 
			
		||||
 | 
			
		||||
        debug.nospace()
 | 
			
		||||
            << "                 id: " << pp.id << "\n"
 | 
			
		||||
            << "       static_start: " << pp.static_start.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "         static_end: " << pp.static_end.toString(Qt::ISODate) << "\n"
 | 
			
		||||
            << "            anytime: " << pp.anytime << "\n"
 | 
			
		||||
            << "              never: " << pp.never << "\n";
 | 
			
		||||
 | 
			
		||||
        return debug;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif // TARIFF_PREPAID_H_INCLUDED
 | 
			
		||||
		Reference in New Issue
	
	Block a user