#ifndef YACREADER_LIBRARIES_H
#define YACREADER_LIBRARIES_H

#include <QtCore>

class YACReaderLibraries : public QObject
{
    Q_OBJECT

public:
    YACReaderLibraries();
    YACReaderLibraries(const YACReaderLibraries &source);
    QList<QString> getNames();
    QString getPath(const QString &name);
    QString getPath(int id);
    QString getDBPath(int id);
    QString getName(int id);
    bool isEmpty();
    bool contains(const QString &name);
    bool contains(int id);
    void remove(const QString &name);
    void rename(const QString &oldName, const QString &newName);
    int getId(const QString &name);
    YACReaderLibraries &operator=(const YACReaderLibraries &source);
    QMap<QString, QPair<int, QString>> getLibraries();
public slots:
    void addLibrary(const QString &name, const QString &path);
    void load();
    bool save();

private:
    // name <id,path>
    QMap<QString, QPair<int, QString>> libraries;
};

#endif // YACREADER_LIBRARIES_H
