#ifndef SCSTWAPPBACKEND_H
#define SCSTWAPPBACKEND_H

#include <QObject>

#include <scstwclient.h>
#include <scstwrace.h>
#include <ScStw.hpp>
#include <scstwremoterace.h>

#include "headers/scstwappsettings.h"


class ScStwAppBackend : public QObject
{
    Q_OBJECT

    Q_PROPERTY(ScStwClient *scStwClient READ getScStwClient WRITE setScStwClient NOTIFY scStwClientChanged)

public:
    explicit ScStwAppBackend(QObject *parent = nullptr);

private:
    ScStwClient * scStwClient;

public slots:
    // functions for qml
    Q_INVOKABLE ScStwClient *getScStwClient();
    Q_INVOKABLE void setScStwClient(ScStwClient *client);

    // athlete management
    Q_INVOKABLE QVariant getAthletes();
    Q_INVOKABLE bool createAthlete( QString userName, QString fullName );
    Q_INVOKABLE bool deleteAthlete( QString userName );
    Q_INVOKABLE bool selectAthlete( QString userName, int timerId );
    Q_INVOKABLE QVariant getResults( QString userName );

signals:
    void scStwClientChanged();
};

#endif // SCSTWAPPBACKEND_H
