Add structures to encode service and out-of-service times
This commit is contained in:
parent
c4e1d412a5
commit
356e451839
79
library/include/mobilisis/tariff_out_of_service.h
Normal file
79
library/include/mobilisis/tariff_out_of_service.h
Normal file
@ -0,0 +1,79 @@
|
||||
#ifndef TARIFF_OUT_OF_SERVICE_H_INCLUDED
|
||||
#define TARIFF_OUT_OF_SERVICE_H_INCLUDED
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QString>
|
||||
|
||||
#include "time_range.h"
|
||||
|
||||
enum class ApplyOutOfService {
|
||||
NEVER = 0,
|
||||
MATCH_PREV_DAY = 1,
|
||||
MATCH_NEXT_DAY = 2,
|
||||
ALWAYS = 3
|
||||
};
|
||||
|
||||
struct ATBTariffOutOfService {
|
||||
int m_id;
|
||||
QString m_weekDay;
|
||||
QDate m_date;
|
||||
TimeRange m_range;
|
||||
ApplyOutOfService m_outOfServiceIf;
|
||||
|
||||
explicit ATBTariffOutOfService()
|
||||
: m_id(-1)
|
||||
, m_outOfServiceIf(ApplyOutOfService::NEVER) {
|
||||
}
|
||||
|
||||
void setOutOfServiceIf(QString const &oosif) {
|
||||
if (oosif == "never") {
|
||||
m_outOfServiceIf = ApplyOutOfService::NEVER;
|
||||
} else
|
||||
if (oosif == "match_prev_day") {
|
||||
m_outOfServiceIf = ApplyOutOfService::MATCH_PREV_DAY;
|
||||
} else
|
||||
if (oosif == "match_next_day") {
|
||||
m_outOfServiceIf = ApplyOutOfService::MATCH_NEXT_DAY;
|
||||
} else
|
||||
if (oosif == "always") {
|
||||
m_outOfServiceIf = ApplyOutOfService::ALWAYS;
|
||||
} else {
|
||||
qCritical() << "ERROR unknown servcie application" << oosif;
|
||||
}
|
||||
}
|
||||
|
||||
ApplyOutOfService outOfServiceIf() const {
|
||||
return m_outOfServiceIf;
|
||||
}
|
||||
|
||||
QString outOfServiceIfStr() const {
|
||||
if (m_outOfServiceIf == ApplyOutOfService::NEVER) {
|
||||
return "never";
|
||||
}
|
||||
if (m_outOfServiceIf == ApplyOutOfService::ALWAYS) {
|
||||
return "always";
|
||||
}
|
||||
if (m_outOfServiceIf == ApplyOutOfService::MATCH_PREV_DAY) {
|
||||
return "match prev day";
|
||||
}
|
||||
if (m_outOfServiceIf == ApplyOutOfService::MATCH_NEXT_DAY) {
|
||||
return "match next day";
|
||||
}
|
||||
return QString("ERROR unknown out of service application: %1").arg(static_cast<int>(m_outOfServiceIf));
|
||||
}
|
||||
friend QDebug operator<<(QDebug debug, ATBTariffOutOfService const &oos) {
|
||||
QDebugStateSaver saver(debug);
|
||||
|
||||
debug.nospace()
|
||||
<< "\nTariffOutOfService:\n"
|
||||
<< " week day: " << oos.m_weekDay << "\n"
|
||||
<< " date: " << oos.m_date.toString(Qt::ISODate) << "\n"
|
||||
<< " id: " << oos.m_id << "\n"
|
||||
<< " start: " << oos.m_range.m_start << "\n"
|
||||
<< " end: " << oos.m_range.m_end << "\n"
|
||||
<< " duration: " << oos.m_range.m_duration << endl;
|
||||
return debug;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // TARIFF_SERVICE_H_INCLUDED
|
81
library/include/mobilisis/tariff_service.h
Normal file
81
library/include/mobilisis/tariff_service.h
Normal file
@ -0,0 +1,81 @@
|
||||
#ifndef TARIFF_SERVICE_H_INCLUDED
|
||||
#define TARIFF_SERVICE_H_INCLUDED
|
||||
|
||||
#include <QDateTime>
|
||||
#include <QString>
|
||||
|
||||
#include "time_range.h"
|
||||
|
||||
enum class ApplyService {
|
||||
NEVER = 0,
|
||||
MATCH_PREV_DAY = 1,
|
||||
MATCH_NEXT_DAY = 2,
|
||||
ALWAYS = 3
|
||||
};
|
||||
|
||||
struct ATBTariffService {
|
||||
int m_id;
|
||||
QString m_weekDay;
|
||||
QDate m_date;
|
||||
TimeRange m_range;
|
||||
ApplyService m_serviceIf;
|
||||
|
||||
explicit ATBTariffService()
|
||||
: m_id(-1)
|
||||
, m_serviceIf(ApplyService::NEVER) {
|
||||
}
|
||||
|
||||
void setServiceIf(QString const &sif) {
|
||||
if (sif == "never") {
|
||||
m_serviceIf = ApplyService::NEVER;
|
||||
} else
|
||||
if (sif == "match_prev_day") {
|
||||
m_serviceIf = ApplyService::MATCH_PREV_DAY;
|
||||
} else
|
||||
if (sif == "match_next_day") {
|
||||
m_serviceIf = ApplyService::MATCH_NEXT_DAY;
|
||||
} else
|
||||
if (sif == "always") {
|
||||
m_serviceIf = ApplyService::ALWAYS;
|
||||
} else {
|
||||
qCritical() << "ERROR unknown servcie application" << sif;
|
||||
}
|
||||
}
|
||||
|
||||
ApplyService serviceIf() const {
|
||||
return m_serviceIf;
|
||||
}
|
||||
|
||||
QString serviceIfStr() const {
|
||||
if (m_serviceIf == ApplyService::NEVER) {
|
||||
return "never";
|
||||
}
|
||||
if (m_serviceIf == ApplyService::ALWAYS) {
|
||||
return "always";
|
||||
}
|
||||
if (m_serviceIf == ApplyService::MATCH_PREV_DAY) {
|
||||
return "match prev day";
|
||||
}
|
||||
if (m_serviceIf == ApplyService::MATCH_NEXT_DAY) {
|
||||
return "match next day";
|
||||
}
|
||||
return QString("ERROR unknown service application: %1").arg(static_cast<int>(m_serviceIf));
|
||||
}
|
||||
|
||||
friend QDebug operator<<(QDebug debug, ATBTariffService const &ts) {
|
||||
QDebugStateSaver saver(debug);
|
||||
|
||||
debug.nospace()
|
||||
<< "\nTariffService:\n"
|
||||
<< " week day: " << ts.m_weekDay << "\n"
|
||||
<< " date: " << ts.m_date.toString(Qt::ISODate) << "\n"
|
||||
<< " id: " << ts.m_id << "\n"
|
||||
<< " start: " << ts.m_range.m_start << "\n"
|
||||
<< " end: " << ts.m_range.m_end << "\n"
|
||||
<< " duration: " << ts.m_range.m_duration << "\n"
|
||||
<< " prepaid if: " << ts.serviceIfStr() << endl;
|
||||
return debug;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // TARIFF_SERVICE_H_INCLUDED
|
Loading…
Reference in New Issue
Block a user