#ifndef __FOLDER_H
#define __FOLDER_H

#include "library_item.h"

#include <QList>

class Folder : public LibraryItem
{
public:
    bool knownParent;
    bool knownId;

    Folder();
    Folder(qulonglong folderId, qulonglong parentId, const QString &folderName, const QString &folderPath);
    Folder(const QString &folderName, const QString &folderPath);
    Folder(const Folder &folder);
    Folder &operator=(const Folder &other);

    inline void setId(qulonglong sid)
    {
        id = sid;
        knownId = true;
    }
    inline void setFather(qulonglong pid)
    {
        parentId = pid;
        knownParent = true;
    }

    inline bool isDir() const
    {
        return true;
    }

    inline bool isFinished() const
    {
        return finished;
    }

    inline bool isCompleted() const
    {
        return completed;
    }

    inline void setFinished(bool b)
    {
        finished = b;
    }

    inline void setCompleted(bool b)
    {
        completed = b;
    }

    inline qint32 getNumChildren() const
    {
        return numChildren;
    }

    inline void setNumChildren(const qint32 v)
    {
        numChildren = v;
    }

    inline QString getFirstChildHash() const
    {
        return firstChildHash;
    }

    inline void setFirstChildHash(const QString &v)
    {
        firstChildHash = v;
    }

    inline QString getCustomImage() const
    {
        return customImage;
    }

    inline void setCustomImage(const QString &s)
    {
        customImage = s;
    }

private:
    bool finished;
    bool completed;

    qint32 numChildren; //-1 for unknown number of children
    QString firstChildHash; //empty for unknown first child
    QString customImage; //empty for none custom image
};

#endif
