#ifndef PROVIDERDBLMS_H
#define PROVIDERDBLMS_H

#include <QObject>
#include <QDebug>
#include "interfacedatabaselms.h"
#include "tasksAmmFim.h"

class ProviderDBLMS : public QObject
{
    Q_OBJECT
public:
    explicit ProviderDBLMS(QWidget *parentWidget, QObject *parent = nullptr);
    ~ProviderDBLMS();
public:
    QString getMainInstructorName();

    //Авторизация обучаемого на клиенте
    bool authorizationTrainee(QString login, QString password, QString classroom_name = QStringLiteral(""), QString computer_name = QStringLiteral(""));
    bool deAuthorizationTrainee(QString login);
    QString getNameTraineeByLogin(QString login);

    //Авторизация инструктора на клиенте
    bool authorizationInstructor(QString login, QString password);
    bool deAuthorizationInstructor(QString login);
    QString getNameInstructorByLogin(QString login);

    //
    QList<Instructor> GetListAllInstructors();    
    QList<Trainee> GetListAllTrainees();
    QList<Group> GetListAllGroups();

    int newInstructor();
    int delInstructor(int id);
    int editInstructor(Instructor instructor);

    int newTrainee(int id_group);
    int delTrainee(int id);
    int editTrainee(Trainee trainee);

    int newGroup();
    int delGroup(int id);
    int editGroup(Group group);

    int newTaskAMM(int id_trainee);
    int delTaskAMM(int id);
    int editTaskAMM(TaskAmmFim task);

    int newTaskFIM(int id_trainee);
    int delTaskFIM(int id);
    int editTaskFIM(TaskAmmFim task);

Q_SIGNALS:
    //сигнал о блокировке авторизации
    void signal_BlockAutorization(bool block);

public:
    void ConnectionToDB();
    void DisConnectionFromDB();

private:
    InterfaceDataBaseLMS* dbLMS;
    QMutex mtxAccess;
};

#endif // PROVIDERDBLMS_H
