PNP_PIbd-31_Rodionov_I_A_Co.../service/serviceloaddb.h

56 lines
1.6 KiB
C++

#ifndef SERVICELOADDB_H
#define SERVICELOADDB_H
#include <QObject>
#include <QSql>
#include <QSqlDatabase>
#include <QSqlRecord>
#include <QSqlQuery>
#include <QSqlError>
#include <QString>
#include <QDebug>
#include <QStringList>
#include <QMap>
#include <QList>
#include <QFile>
#include "models/filterparams.h"
#include "models/enums/entitytype.h"
#include "models/types.h" // IWYU pragma: keep
class ServiceLoadDB : public QObject
{
Q_OBJECT
public:
explicit ServiceLoadDB(QObject *parent = nullptr);
void start();
QMap<int, Location> loadLocations();
QMap<int, Department> loadDepartments();
QMap<int, Manufacturer> loadManufacturers();
QMap<int, DeviceType> loadDeviceTypes();
QMap<int, DeviceModel> loadDeviceModels();
QList<Device> loadDevices(int entityId, EntityType entityType,
QString searchText,
const FilterParams &filterParams,
const QString &sortOrder);
bool updateDevice(const Device &device);
private:
QList<DeviceStructureElement> readStructureElements(int modelId);
DeviceModel getModelObject(int id, QString name, QString description, int workEfficiency, int reliability, int energyEfficiency, int userFriendlines, int durability,
int aestheticQualities, int idType, QString nameType, int idManuf, QString nameManuf);
template <typename T>
T getValueOrDefault(const QSqlQuery &query, const QSqlRecord &record, const QString &fieldName, const T &defaultValue);
private:
QSqlDatabase _db;
QString _dbInput;
QSqlQuery _query;
};
#endif // SERVICELOADDB_H