ImagingTools Core SDK
CConversationComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4// ACF includes
5#include <icomp/CComponentBase.h>
6#include <istd/IChangeable.h>
7
8// ImtCore includes
9#include <imtchat/IConversation.h>
10
11
12namespace imtchat
13{
14
15
16class CConversationComp:
17 public icomp::CComponentBase,
18 virtual public IConversation
19{
20public:
21 typedef icomp::CComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CConversationComp)
24 I_REGISTER_INTERFACE(IConversation);
25 I_REGISTER_INTERFACE(iser::ISerializable);
26 I_REGISTER_INTERFACE(istd::IChangeable);
27 I_END_COMPONENT
28
29 // reimplemented (imtchat::IConversation)
30 virtual QByteArray GetId() const override;
31 virtual void SetId(const QByteArray& id) override;
32 virtual QString GetName() const override;
33 virtual void SetName(const QString& name) override;
34 virtual IConversation::ConversationType GetConversationType() const override;
35 virtual void SetConversationType(IConversation::ConversationType conversationType) override;
36 virtual QByteArrayList GetParticipantIds() const override;
37 virtual void SetParticipantIds(const QByteArrayList& participantIds) override;
38 virtual QString GetCreatedAt() const override;
39 virtual void SetCreatedAt(const QString& createdAt) override;
40 virtual QString GetUpdatedAt() const override;
41 virtual void SetUpdatedAt(const QString& updatedAt) override;
42 virtual QString GetMetadata() const override;
43 virtual void SetMetadata(const QString& metadata) override;
44
45 // reimplemented (iser::ISerializable)
46 virtual bool Serialize(iser::IArchive& archive) override;
47
48 // reimplemented (istd::IChangeable)
49 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
50 virtual bool IsEqual(const IChangeable& object) const override;
51 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
52 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
53
54private:
55 QByteArray m_id;
56 QString m_name;
57 IConversation::ConversationType m_conversationType = IConversation::CT_DIRECT;
58 QByteArrayList m_participantIds;
59 QString m_createdAt;
60 QString m_updatedAt;
61 QString m_metadata;
62};
63
64} // namespace imtchat
Internal Service Desk Chat Domain Model Module.