// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
// Qt-Security score:significant reason:default

#ifndef QORGANIZERCOLLECTIONCHANGESET_P_H
#define QORGANIZERCOLLECTIONCHANGESET_P_H

//
//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists purely as an
// implementation detail.  This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//

#include <QtCore/qlist.h>
#include <QtCore/qset.h>
#include <QtCore/qshareddata.h>

#include <utility>

#include <QtOrganizer/qorganizercollectionid.h>

QT_BEGIN_NAMESPACE_ORGANIZER

class QOrganizerCollectionChangeSetPrivate : public QSharedData
{
public:
    QOrganizerCollectionChangeSetPrivate()
        : QSharedData(), m_dataChanged(false)
    {
    }

    QOrganizerCollectionChangeSetPrivate(const QOrganizerCollectionChangeSetPrivate& other)
        : QSharedData(other),
          m_dataChanged(other.m_dataChanged),
          m_addedCollections(other.m_addedCollections),
          m_changedCollections(other.m_changedCollections),
          m_removedCollections(other.m_removedCollections),
          m_modifiedCollections(other.m_modifiedCollections)
    {
    }

    ~QOrganizerCollectionChangeSetPrivate()
    {
    }

    bool m_dataChanged;
    QSet<QOrganizerCollectionId> m_addedCollections;
    QSet<QOrganizerCollectionId> m_changedCollections;
    QSet<QOrganizerCollectionId> m_removedCollections;
    QList<std::pair<QOrganizerCollectionId, QOrganizerManager::Operation>> m_modifiedCollections;
};

QT_END_NAMESPACE_ORGANIZER

#endif // QORGANIZERCOLLECTIONCHANGESET_P_H
