ImagingTools Core SDK
CChatMessageComp.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/IChatMessage.h>
10
11
12namespace imtchat
13{
14
15
16class CChatMessageComp:
17 public icomp::CComponentBase,
18 virtual public IChatMessage
19{
20public:
21 typedef icomp::CComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CChatMessageComp)
24 I_REGISTER_INTERFACE(IChatMessage);
25 I_REGISTER_INTERFACE(iser::ISerializable);
26 I_REGISTER_INTERFACE(istd::IChangeable);
27 I_END_COMPONENT
28
29 // reimplemented (imtchat::IChatMessage)
30 virtual QByteArray GetId() const override;
31 virtual void SetId(const QByteArray& id) override;
32 virtual QByteArray GetConversationId() const override;
33 virtual void SetConversationId(const QByteArray& conversationId) override;
34 virtual QByteArray GetSenderId() const override;
35 virtual void SetSenderId(const QByteArray& senderId) override;
36 virtual QString GetContent() const override;
37 virtual void SetContent(const QString& content) override;
38 virtual IChatMessage::MessageStatus GetStatus() const override;
39 virtual void SetStatus(IChatMessage::MessageStatus status) override;
40 virtual QString GetCreatedAt() const override;
41 virtual void SetCreatedAt(const QString& createdAt) override;
42 virtual QString GetUpdatedAt() const override;
43 virtual void SetUpdatedAt(const QString& updatedAt) override;
44 virtual QByteArrayList GetEntityReferences() const override;
45 virtual void SetEntityReferences(const QByteArrayList& entityReferences) override;
46 virtual QByteArrayList GetAttachmentIds() const override;
47 virtual void SetAttachmentIds(const QByteArrayList& attachmentIds) override;
48
49 // reimplemented (iser::ISerializable)
50 virtual bool Serialize(iser::IArchive& archive) override;
51
52 // reimplemented (istd::IChangeable)
53 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
54 virtual bool IsEqual(const IChangeable& object) const override;
55 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
56 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
57
58private:
59 QByteArray m_id;
60 QByteArray m_conversationId;
61 QByteArray m_senderId;
62 QString m_content;
63 IChatMessage::MessageStatus m_status = IChatMessage::MS_SENT;
64 QString m_createdAt;
65 QString m_updatedAt;
66 QByteArrayList m_entityReferences;
67 QByteArrayList m_attachmentIds;
68};
69
70} // namespace imtchat
Internal Service Desk Chat Domain Model Module.