#ifndef INTERNALLOGICMANAGER_H
#define INTERNALLOGICMANAGER_H

#include <QObject>

#include "models/patchdownloader.h"
#include "models/lotrodatmanager.h"
#include "models/filesystem.h"

/*
Stage 1 - check if user opened application for the first time - then we need to show
          hello messages.

Stage 2 - check if lotro folder is correct (there's file LotroLauncher.exe in it).
          If no - then show him settings (ask to find lotro folder) where user can set it.

Stage 3 - check if there are client_local_English.dat and client_general.dat files.
          If no - then remove file and show message that we need to download them.

Stage 4 - try to open client_local_English.dat and client_general.dat. If at least one of them
          fails to open at all - show that there may be other processes taken ownage.

Stage 5 - if .dat files are opened, but there was an error telling that file has incorrect version -
          remove file and show message that we need to download them.

--- After this assuming that .dat files are correct and opened.

Stage 6 - if user runs for the first time, then ask to create backup

Stage 7 - check that user has chosen patches options. Otherwise move user to settings with enabled
          position of choosing (this skips stage 8 and goes to st.9)

Stage 8 - if there are flags that patches already applied but this is not true with .dat - ask to
          apply them once more

Stage 9 - All settings are checked and set. If user is for the first time - show message "ready to begin"
          Start check for updates. Start check for updates timer.
*/

class InternalLogicManager : public QObject
{
    Q_OBJECT
public:
    explicit InternalLogicManager(PatchDownloader* patch_downloader, LotroDatManager *lotro_mgr, QObject *parent = nullptr);

signals:

public slots:



private:
    int state_;
};

#endif // INTERNALLOGICMANAGER_H
