ImagingTools Core SDK
IPersonBaseInfo.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 IPersonBaseInfo: virtual public IContactBaseInfo
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 GenderType GetGenderType() const = 0;
84 virtual void SetGenderType(GenderType genderType) = 0;
85 virtual QDate GetBirthday() const = 0;
86 virtual void SetBirthday(const QDate& birthday) = 0;
87 virtual QString GetNameField(NameFieldType fieldType) const = 0;
88 virtual void SetNameField(NameFieldType fieldType, const QString& value) = 0;
89};
90
91
92} // namespace imtauth
93
94