ImagingTools Core SDK
IContactInfo.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
5// ACF includes
6#include <idoc/IDocumentMetaInfo.h>
7#include <iser/IObject.h>
8
9// ImtCore includes
10#include <imtauth/IContactBaseInfo.h>
11
12
13class QDate;
14
15
16namespace imtauth
17{
18
19
20class IAddressProvider;
21
22
27class IContactInfo: virtual public iser::ISerializable
28{
29public:
30 enum GenderType
31 {
32 GT_DIVERSE, // :)
33 GT_FEMALE,
34 GT_MALE
35 };
36
37 I_DECLARE_ENUM(GenderType, GT_DIVERSE, GT_FEMALE, GT_MALE);
38
39 enum NameFieldType
40 {
41 NFT_FIRST_NAME,
42 NFT_LAST_NAME,
43 NFT_NICKNAME,
44 NFT_SALUTATION,
45 NFT_TITLE
46 };
47
48 I_DECLARE_ENUM(NameFieldType, NFT_FIRST_NAME, NFT_LAST_NAME, NFT_NICKNAME, NFT_SALUTATION, NFT_TITLE);
49
51 {
55 MIT_MAIL = idoc::IDocumentMetaInfo::MIT_USER + 1,
56
61
66
71
76
81 };
82
83 virtual QString GetEmail() const = 0;
84 virtual void SetEmail(const QString& email) = 0;
85 virtual GenderType GetGenderType() const = 0;
86 virtual void SetGenderType(GenderType genderType) = 0;
87 virtual QDate GetBirthday() const = 0;
88 virtual void SetBirthday(const QDate& birthday) = 0;
89 virtual QString GetNameField(NameFieldType fieldType) const = 0;
90 virtual void SetNameField(NameFieldType fieldType, const QString& value) = 0;
91 virtual const IAddressProvider* GetAddresses() const = 0;
92};
93
94
95} // namespace imtauth
96
97