#ifndef NETWORK_H
#define NETWORK_H

#include <QUrl>
#include <QNetworkAccessManager>
#include <QtNetwork/QNetworkReply>
#include <QProgressBar>
#include <QFile>
#include <QObject>

class MainWindow;

class ANetwork : public QObject {
    Q_OBJECT
public:
    explicit ANetwork(QObject *parent = nullptr);
    ANetwork( const ANetwork&) = delete;
    ANetwork& operator=( ANetwork& ) = delete;

    QNetworkReply* currentDownload;
    QFile output;

    void getUrl();
    QString getCoupon();

    void UpdatePatches();

    QString getServers();
    QString getFootMessage();
    QString getMicroPath(int timestamp);

    QString query(QUrl url);
    QByteArray query_binary(QUrl url);

    QString micropatch;

signals:
    void changePatchStatus(QString patch_name, QString new_status);
    void changeHint(QString header, QString hint);

private slots:
//    void downloadProgress(qint64 bytesReceived, qint64 bytesTotal);
//    void downloadFinished();
};

#endif // NETWORK_H
