Add class Ticket for future use.
This commit is contained in:
		
							
								
								
									
										64
									
								
								library/include/mobilisis/ticket.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								library/include/mobilisis/ticket.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| #ifndef TICKET_H_INCLUDED | ||||
| #define TICKET_H_INCLUDED | ||||
|  | ||||
| #include <tuple> | ||||
| #include <vector> | ||||
|  | ||||
| #include <QDebug> | ||||
| #include <QDebugStateSaver> | ||||
| #include <QStringList> | ||||
| #include <QDateTime> | ||||
|  | ||||
| #define NOT_INITIALIZED         (0) | ||||
| #define VALID                   (1) | ||||
| #define INVALID_FROM_DATETIME   (2) | ||||
| #define INVALID_UNTIL_DATETIME  (3) | ||||
| #define STATUS_END              (4) | ||||
|  | ||||
| class Ticket { | ||||
|     enum {CODE=0, CODE_STR=1, CODE_DESC=3}; | ||||
| public: | ||||
|     using Status = std::tuple<int, char const*, char const*>; | ||||
|  | ||||
|     explicit Ticket(); | ||||
|     | ||||
|     explicit operator bool() { return std::get<CODE>(m_status) == VALID; } | ||||
|     operator QString(); | ||||
|  | ||||
|     Status getStatus() const; | ||||
|     QDateTime getValidFrom() const; | ||||
|     QDateTime getValidUntil() const; | ||||
|     uint32_t getPrice() const; | ||||
|  | ||||
|     Status setStatus(Status status); | ||||
|     void setValidFrom(QDateTime const &validFrom); | ||||
|     void setValidUntil(QDateTime const &validUnil); | ||||
|     void setPrice(uint32_t price); | ||||
|  | ||||
| private: | ||||
|     Status m_status; | ||||
|  | ||||
|     QDateTime m_validFrom; | ||||
|     QDateTime m_validUntil; | ||||
|      | ||||
|     int m_durationMinutesNetto; | ||||
|     int m_durationMinutesBrutto; | ||||
|  | ||||
|     uint32_t m_price; | ||||
|  | ||||
|     static constexpr const Status s[STATUS_END] = { | ||||
|         {NOT_INITIALIZED       , "NOT_INITIALIZED"       , "Ticket not initialized"           }, | ||||
|         {VALID                 , "VALID"                 , "Ticket is valid"                  }, | ||||
|         {INVALID_FROM_DATETIME , "INVALID_FROM_DATETIME" , "Ticket has invalid start datetime"}, | ||||
|         {INVALID_UNTIL_DATETIME, "INVALID_UNTIL_DATETIME", "Ticket has invalid end datetime"  } | ||||
|     }; | ||||
| }; | ||||
|      | ||||
| QDebug operator<<(QDebug debug, Ticket::Status const &status) { | ||||
|     QDebugStateSaver saver(debug); | ||||
|     debug << "Ticket-Status: " << std::get<1>(status)  | ||||
|           << "(" << std::get<2>(status) << ")"; | ||||
|     return debug; | ||||
| } | ||||
|  | ||||
| #endif // TICKET_H_INCLUDED | ||||
		Reference in New Issue
	
	Block a user