/****************************************************************************
**
** Copyright (C) 2012 Róbert Márki
**
** This file is part of Web Feeds.
**
** Web Feeds is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** Web Feeds is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with Web Feeds.  If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/

#ifndef UPDATETREEREPLY_H
#define UPDATETREEREPLY_H
#include "googlereaderreply.h"
#include "rootitem.h"
#include "feeditem.h"
#include "tagitem.h"
#include "everythingtagitem.h"
#include "starredtagitem.h"
#include "folderitem.h"
#include <QImage>
#include <QStringList>
#include <QMultiHash>

namespace GoogleReader
{
class GoogleReaderClient;
class UpdateTreeReply : public GoogleReaderReply
{
    Q_OBJECT
public:
    explicit UpdateTreeReply();
    WebServiceReply::Role role() const;

    RootItemPtr rootItem() const;
    EverythingTagItemPtr everythingTagItem() const;
    StarredTagItemPtr starredTagItem() const;
    QMultiHash<QString, FeedItemPtr> feedItems() const;
    QMultiHash<QString, TagItemPtr> tagItems() const;
    QMultiHash<QString, FolderItemPtr> folderItems() const;
    QHash<QString, int> unreadCountsPerId() const;
    int unreadCountLimit() const;

private:
    RootItemPtr m_rootItem;
    EverythingTagItemPtr m_everythingTagItem;
    StarredTagItemPtr m_starredTagItem;
    QMultiHash<QString, FeedItemPtr> m_feedItems;
    QMultiHash<QString, TagItemPtr> m_tagItems;
    QMultiHash<QString, FolderItemPtr> m_folderItems;
    QMultiHash<QString, QString> m_feedsPerTags;
    QHash<QString, int> m_unreadCounts;
    int m_unreadCountLimit;

    friend class GoogleReaderClient;
};
typedef QSharedPointer<UpdateTreeReply> UpdateTreeReplyPtr;
} // namespace GoogleReader
#endif // UPDATETREEREPLY_H
