1115cd2caSopenharmony_ci/* 2115cd2caSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3115cd2caSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4115cd2caSopenharmony_ci * you may not use this file except in compliance with the License. 5115cd2caSopenharmony_ci * You may obtain a copy of the License at 6115cd2caSopenharmony_ci * 7115cd2caSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8115cd2caSopenharmony_ci * 9115cd2caSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10115cd2caSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11115cd2caSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12115cd2caSopenharmony_ci * See the License for the specific language governing permissions and 13115cd2caSopenharmony_ci * limitations under the License. 14115cd2caSopenharmony_ci */ 15115cd2caSopenharmony_ci 16115cd2caSopenharmony_ci#ifndef CONTACT_NAPI_OBJECT_H 17115cd2caSopenharmony_ci#define CONTACT_NAPI_OBJECT_H 18115cd2caSopenharmony_ci 19115cd2caSopenharmony_ci#include <string> 20115cd2caSopenharmony_ci 21115cd2caSopenharmony_cinamespace OHOS { 22115cd2caSopenharmony_cinamespace ContactsApi { 23115cd2caSopenharmony_cienum class Attribute { 24115cd2caSopenharmony_ci /** 25115cd2caSopenharmony_ci * Indicates the email address. 26115cd2caSopenharmony_ci */ 27115cd2caSopenharmony_ci ATTR_EMAIL = 1, 28115cd2caSopenharmony_ci 29115cd2caSopenharmony_ci /** 30115cd2caSopenharmony_ci * Indicates the instant messaging (IM) address. 31115cd2caSopenharmony_ci */ 32115cd2caSopenharmony_ci ATTR_IM, 33115cd2caSopenharmony_ci 34115cd2caSopenharmony_ci /** 35115cd2caSopenharmony_ci * Indicates the nickname. 36115cd2caSopenharmony_ci */ 37115cd2caSopenharmony_ci ATTR_NICKNAME, 38115cd2caSopenharmony_ci 39115cd2caSopenharmony_ci /** 40115cd2caSopenharmony_ci * Indicates the organization. 41115cd2caSopenharmony_ci */ 42115cd2caSopenharmony_ci ATTR_ORGANIZATION, 43115cd2caSopenharmony_ci 44115cd2caSopenharmony_ci /** 45115cd2caSopenharmony_ci * Indicates the phone number. 46115cd2caSopenharmony_ci */ 47115cd2caSopenharmony_ci ATTR_PHONE, 48115cd2caSopenharmony_ci 49115cd2caSopenharmony_ci /** 50115cd2caSopenharmony_ci * Indicates the name. 51115cd2caSopenharmony_ci */ 52115cd2caSopenharmony_ci ATTR_NAME, 53115cd2caSopenharmony_ci 54115cd2caSopenharmony_ci /** 55115cd2caSopenharmony_ci * Indicates the postal address. 56115cd2caSopenharmony_ci */ 57115cd2caSopenharmony_ci ATTR_POSTAL_ADDRESS, 58115cd2caSopenharmony_ci 59115cd2caSopenharmony_ci /** 60115cd2caSopenharmony_ci * Indicates the portrait. 61115cd2caSopenharmony_ci */ 62115cd2caSopenharmony_ci ATTR_PORTRAIT, 63115cd2caSopenharmony_ci 64115cd2caSopenharmony_ci /** 65115cd2caSopenharmony_ci * Indicates the contact group. 66115cd2caSopenharmony_ci */ 67115cd2caSopenharmony_ci ATTR_GROUP_MEMBERSHIP, 68115cd2caSopenharmony_ci 69115cd2caSopenharmony_ci /** 70115cd2caSopenharmony_ci * Indicates the note. 71115cd2caSopenharmony_ci */ 72115cd2caSopenharmony_ci ATTR_NOTE, 73115cd2caSopenharmony_ci 74115cd2caSopenharmony_ci /** 75115cd2caSopenharmony_ci * Indicates the contact event. 76115cd2caSopenharmony_ci */ 77115cd2caSopenharmony_ci ATTR_CONTACT_EVENT, 78115cd2caSopenharmony_ci 79115cd2caSopenharmony_ci /** 80115cd2caSopenharmony_ci * Indicates the website. 81115cd2caSopenharmony_ci */ 82115cd2caSopenharmony_ci ATTR_WEBSITE, 83115cd2caSopenharmony_ci 84115cd2caSopenharmony_ci /** 85115cd2caSopenharmony_ci * Indicates the relation. 86115cd2caSopenharmony_ci */ 87115cd2caSopenharmony_ci ATTR_RELATION, 88115cd2caSopenharmony_ci 89115cd2caSopenharmony_ci /** 90115cd2caSopenharmony_ci * Indicates the Session Initiation Protocol (SIP) address. 91115cd2caSopenharmony_ci */ 92115cd2caSopenharmony_ci ATTR_SIP_ADDRESS = 17 93115cd2caSopenharmony_ci}; 94115cd2caSopenharmony_ci 95115cd2caSopenharmony_ci/** 96115cd2caSopenharmony_ci * Provides methods for contact attributes information 97115cd2caSopenharmony_ci */ 98115cd2caSopenharmony_ciclass ContactAttributes { 99115cd2caSopenharmony_cipublic: 100115cd2caSopenharmony_ci /** 101115cd2caSopenharmony_ci * Indicates the contact attributes. 102115cd2caSopenharmony_ci */ 103115cd2caSopenharmony_ci std::vector<int> attributes; 104115cd2caSopenharmony_ci}; 105115cd2caSopenharmony_ci 106115cd2caSopenharmony_ci/** 107115cd2caSopenharmony_ci * Provides methods for email information 108115cd2caSopenharmony_ci */ 109115cd2caSopenharmony_ciclass Email { 110115cd2caSopenharmony_cipublic: 111115cd2caSopenharmony_ci /** 112115cd2caSopenharmony_ci * Indicates a custom label. 113115cd2caSopenharmony_ci */ 114115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 115115cd2caSopenharmony_ci 116115cd2caSopenharmony_ci /** 117115cd2caSopenharmony_ci * Indicates a home email. 118115cd2caSopenharmony_ci */ 119115cd2caSopenharmony_ci static const int EMAIL_HOME = 1; 120115cd2caSopenharmony_ci 121115cd2caSopenharmony_ci /** 122115cd2caSopenharmony_ci * Indicates a work email. 123115cd2caSopenharmony_ci */ 124115cd2caSopenharmony_ci static const int EMAIL_WORK = 2; 125115cd2caSopenharmony_ci 126115cd2caSopenharmony_ci /** 127115cd2caSopenharmony_ci * Indicates an email of the OTHER type. 128115cd2caSopenharmony_ci */ 129115cd2caSopenharmony_ci static const int EMAIL_OTHER = 3; 130115cd2caSopenharmony_ci 131115cd2caSopenharmony_ci /** 132115cd2caSopenharmony_ci * Indicates an invalid label ID. 133115cd2caSopenharmony_ci */ 134115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 135115cd2caSopenharmony_ci 136115cd2caSopenharmony_ci /** 137115cd2caSopenharmony_ci * Indicates the email address. 138115cd2caSopenharmony_ci */ 139115cd2caSopenharmony_ci std::string email; 140115cd2caSopenharmony_ci 141115cd2caSopenharmony_ci /** 142115cd2caSopenharmony_ci * Indicates the label name of an attribute. 143115cd2caSopenharmony_ci */ 144115cd2caSopenharmony_ci std::string labelName; 145115cd2caSopenharmony_ci 146115cd2caSopenharmony_ci /** 147115cd2caSopenharmony_ci * Indicates the displayed email name. 148115cd2caSopenharmony_ci */ 149115cd2caSopenharmony_ci std::string displayName; 150115cd2caSopenharmony_ci 151115cd2caSopenharmony_ci /** 152115cd2caSopenharmony_ci * Indicates the label id. 153115cd2caSopenharmony_ci */ 154115cd2caSopenharmony_ci int labelId = -1; 155115cd2caSopenharmony_ci}; 156115cd2caSopenharmony_ci 157115cd2caSopenharmony_ci/** 158115cd2caSopenharmony_ci * Provides methods for event information 159115cd2caSopenharmony_ci */ 160115cd2caSopenharmony_ciclass Event { 161115cd2caSopenharmony_cipublic: 162115cd2caSopenharmony_ci /** 163115cd2caSopenharmony_ci * Indicates a custom label. 164115cd2caSopenharmony_ci */ 165115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 166115cd2caSopenharmony_ci 167115cd2caSopenharmony_ci /** 168115cd2caSopenharmony_ci * Indicates an anniversary event. 169115cd2caSopenharmony_ci */ 170115cd2caSopenharmony_ci static const int EVENT_ANNIVERSARY = 1; 171115cd2caSopenharmony_ci 172115cd2caSopenharmony_ci /** 173115cd2caSopenharmony_ci * Indicates an event of the OTHER type. 174115cd2caSopenharmony_ci */ 175115cd2caSopenharmony_ci static const int EVENT_OTHER = 2; 176115cd2caSopenharmony_ci 177115cd2caSopenharmony_ci /** 178115cd2caSopenharmony_ci * Indicates an birthday event. 179115cd2caSopenharmony_ci */ 180115cd2caSopenharmony_ci static const int EVENT_BIRTHDAY = 3; 181115cd2caSopenharmony_ci 182115cd2caSopenharmony_ci /** 183115cd2caSopenharmony_ci * Indicates an invalid label ID. 184115cd2caSopenharmony_ci */ 185115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 186115cd2caSopenharmony_ci 187115cd2caSopenharmony_ci /** 188115cd2caSopenharmony_ci * Indicates the event date. 189115cd2caSopenharmony_ci */ 190115cd2caSopenharmony_ci std::string eventDate; 191115cd2caSopenharmony_ci 192115cd2caSopenharmony_ci /** 193115cd2caSopenharmony_ci * Indicates the label name of an attribute. 194115cd2caSopenharmony_ci */ 195115cd2caSopenharmony_ci std::string labelName; 196115cd2caSopenharmony_ci 197115cd2caSopenharmony_ci /** 198115cd2caSopenharmony_ci * Indicates the label id. 199115cd2caSopenharmony_ci */ 200115cd2caSopenharmony_ci int labelId = -1; 201115cd2caSopenharmony_ci}; 202115cd2caSopenharmony_ci 203115cd2caSopenharmony_ci/** 204115cd2caSopenharmony_ci * Provides methods for group information 205115cd2caSopenharmony_ci */ 206115cd2caSopenharmony_ciclass Group { 207115cd2caSopenharmony_cipublic: 208115cd2caSopenharmony_ci /** 209115cd2caSopenharmony_ci * Indicates the contact group ID. 210115cd2caSopenharmony_ci */ 211115cd2caSopenharmony_ci int groupId = -1; 212115cd2caSopenharmony_ci 213115cd2caSopenharmony_ci /** 214115cd2caSopenharmony_ci * Indicates the contact group title. 215115cd2caSopenharmony_ci */ 216115cd2caSopenharmony_ci std::string title; 217115cd2caSopenharmony_ci}; 218115cd2caSopenharmony_ci 219115cd2caSopenharmony_ci/** 220115cd2caSopenharmony_ci * Provides methods for holder information 221115cd2caSopenharmony_ci */ 222115cd2caSopenharmony_ciclass Holder { 223115cd2caSopenharmony_cipublic: 224115cd2caSopenharmony_ci /** 225115cd2caSopenharmony_ci * Indicates the bundle name of a contact holder. 226115cd2caSopenharmony_ci */ 227115cd2caSopenharmony_ci std::string bundleName; 228115cd2caSopenharmony_ci 229115cd2caSopenharmony_ci /** 230115cd2caSopenharmony_ci * Indicates the displayed name of a contact holder. 231115cd2caSopenharmony_ci */ 232115cd2caSopenharmony_ci std::string displayName; 233115cd2caSopenharmony_ci 234115cd2caSopenharmony_ci /** 235115cd2caSopenharmony_ci * Indicates the holder ID. 236115cd2caSopenharmony_ci */ 237115cd2caSopenharmony_ci int holderId = -1; 238115cd2caSopenharmony_ci}; 239115cd2caSopenharmony_ci 240115cd2caSopenharmony_ci/** 241115cd2caSopenharmony_ci * Provides methods for ImAddress information 242115cd2caSopenharmony_ci */ 243115cd2caSopenharmony_ciclass ImAddress { 244115cd2caSopenharmony_cipublic: 245115cd2caSopenharmony_ci /** 246115cd2caSopenharmony_ci * Indicates a custom label. 247115cd2caSopenharmony_ci */ 248115cd2caSopenharmony_ci static const int CUSTOM_LABEL = -1; 249115cd2caSopenharmony_ci 250115cd2caSopenharmony_ci /** 251115cd2caSopenharmony_ci * Indicates an AIM instant message. 252115cd2caSopenharmony_ci */ 253115cd2caSopenharmony_ci static const int IM_AIM = 0; 254115cd2caSopenharmony_ci 255115cd2caSopenharmony_ci /** 256115cd2caSopenharmony_ci * Indicates a Windows Live instant message. 257115cd2caSopenharmony_ci */ 258115cd2caSopenharmony_ci static const int IM_MSN = 1; 259115cd2caSopenharmony_ci 260115cd2caSopenharmony_ci /** 261115cd2caSopenharmony_ci * Indicates a Yahoo instant message. 262115cd2caSopenharmony_ci */ 263115cd2caSopenharmony_ci static const int IM_YAHOO = 2; 264115cd2caSopenharmony_ci 265115cd2caSopenharmony_ci /** 266115cd2caSopenharmony_ci * Indicates a Skype instant message. 267115cd2caSopenharmony_ci */ 268115cd2caSopenharmony_ci static const int IM_SKYPE = 3; 269115cd2caSopenharmony_ci 270115cd2caSopenharmony_ci /** 271115cd2caSopenharmony_ci * Indicates a QQ instant message. 272115cd2caSopenharmony_ci */ 273115cd2caSopenharmony_ci static const int IM_QQ = 4; 274115cd2caSopenharmony_ci 275115cd2caSopenharmony_ci /** 276115cd2caSopenharmony_ci * Indicates an ICQ instant message. 277115cd2caSopenharmony_ci */ 278115cd2caSopenharmony_ci static const int IM_ICQ = 6; 279115cd2caSopenharmony_ci 280115cd2caSopenharmony_ci /** 281115cd2caSopenharmony_ci * Indicates a Jabber instant message. 282115cd2caSopenharmony_ci */ 283115cd2caSopenharmony_ci static const int IM_JABBER = 7; 284115cd2caSopenharmony_ci 285115cd2caSopenharmony_ci /** 286115cd2caSopenharmony_ci * Indicates an invalid label ID. 287115cd2caSopenharmony_ci */ 288115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -2; 289115cd2caSopenharmony_ci 290115cd2caSopenharmony_ci /** 291115cd2caSopenharmony_ci * Indicates the IM address. 292115cd2caSopenharmony_ci */ 293115cd2caSopenharmony_ci std::string imAddress; 294115cd2caSopenharmony_ci 295115cd2caSopenharmony_ci /** 296115cd2caSopenharmony_ci * Indicates the label name of an attribute. 297115cd2caSopenharmony_ci */ 298115cd2caSopenharmony_ci std::string labelName; 299115cd2caSopenharmony_ci 300115cd2caSopenharmony_ci /** 301115cd2caSopenharmony_ci * Indicates the label id. 302115cd2caSopenharmony_ci */ 303115cd2caSopenharmony_ci int labelId = -1; 304115cd2caSopenharmony_ci}; 305115cd2caSopenharmony_ci/** 306115cd2caSopenharmony_ci * Provides methods for name information 307115cd2caSopenharmony_ci */ 308115cd2caSopenharmony_ciclass Name { 309115cd2caSopenharmony_cipublic: 310115cd2caSopenharmony_ci /** 311115cd2caSopenharmony_ci * Indicates the family name of the contact. 312115cd2caSopenharmony_ci */ 313115cd2caSopenharmony_ci std::string familyName; 314115cd2caSopenharmony_ci 315115cd2caSopenharmony_ci /** 316115cd2caSopenharmony_ci * Indicates the phonetic family name of the contact. 317115cd2caSopenharmony_ci */ 318115cd2caSopenharmony_ci std::string familyNamePhonetic; 319115cd2caSopenharmony_ci 320115cd2caSopenharmony_ci /** 321115cd2caSopenharmony_ci * Indicates the full name of the contact. 322115cd2caSopenharmony_ci */ 323115cd2caSopenharmony_ci std::string fullName; 324115cd2caSopenharmony_ci 325115cd2caSopenharmony_ci /** 326115cd2caSopenharmony_ci * Indicates the given name of the contact. 327115cd2caSopenharmony_ci */ 328115cd2caSopenharmony_ci std::string givenName; 329115cd2caSopenharmony_ci 330115cd2caSopenharmony_ci /** 331115cd2caSopenharmony_ci * Indicates the phonetic given name of the contact. 332115cd2caSopenharmony_ci */ 333115cd2caSopenharmony_ci std::string givenNamePhonetic; 334115cd2caSopenharmony_ci 335115cd2caSopenharmony_ci /** 336115cd2caSopenharmony_ci * Indicates the middle name of the contact. 337115cd2caSopenharmony_ci */ 338115cd2caSopenharmony_ci std::string middleName; 339115cd2caSopenharmony_ci 340115cd2caSopenharmony_ci /** 341115cd2caSopenharmony_ci * Indicates the phonetic middle name of the contact. 342115cd2caSopenharmony_ci */ 343115cd2caSopenharmony_ci std::string middleNamePhonetic; 344115cd2caSopenharmony_ci 345115cd2caSopenharmony_ci /** 346115cd2caSopenharmony_ci * Indicates the prefix of the contact name. 347115cd2caSopenharmony_ci */ 348115cd2caSopenharmony_ci std::string namePrefix; 349115cd2caSopenharmony_ci 350115cd2caSopenharmony_ci /** 351115cd2caSopenharmony_ci * Indicates the suffix of this contact name. 352115cd2caSopenharmony_ci */ 353115cd2caSopenharmony_ci std::string nameSuffix; 354115cd2caSopenharmony_ci}; 355115cd2caSopenharmony_ci/** 356115cd2caSopenharmony_ci * Provides methods for nick name information 357115cd2caSopenharmony_ci */ 358115cd2caSopenharmony_ciclass NickName { 359115cd2caSopenharmony_cipublic: 360115cd2caSopenharmony_ci /** 361115cd2caSopenharmony_ci * Indicates the nickname of the contact. 362115cd2caSopenharmony_ci */ 363115cd2caSopenharmony_ci std::string nickName; 364115cd2caSopenharmony_ci}; 365115cd2caSopenharmony_ci 366115cd2caSopenharmony_ci/** 367115cd2caSopenharmony_ci * Provides methods for note information 368115cd2caSopenharmony_ci */ 369115cd2caSopenharmony_ciclass Note { 370115cd2caSopenharmony_cipublic: 371115cd2caSopenharmony_ci /** 372115cd2caSopenharmony_ci * Indicates the note content. 373115cd2caSopenharmony_ci */ 374115cd2caSopenharmony_ci std::string noteContent; 375115cd2caSopenharmony_ci}; 376115cd2caSopenharmony_ci/** 377115cd2caSopenharmony_ci * Provides methods for organization information 378115cd2caSopenharmony_ci */ 379115cd2caSopenharmony_ciclass Organization { 380115cd2caSopenharmony_cipublic: 381115cd2caSopenharmony_ci /** 382115cd2caSopenharmony_ci * Indicates the name of the organization to which the contact belongs. 383115cd2caSopenharmony_ci */ 384115cd2caSopenharmony_ci std::string name; 385115cd2caSopenharmony_ci 386115cd2caSopenharmony_ci /** 387115cd2caSopenharmony_ci * Indicates the title of the contact. 388115cd2caSopenharmony_ci */ 389115cd2caSopenharmony_ci std::string title; 390115cd2caSopenharmony_ci}; 391115cd2caSopenharmony_ci/** 392115cd2caSopenharmony_ci * Provides methods for phone number information 393115cd2caSopenharmony_ci */ 394115cd2caSopenharmony_ciclass PhoneNumber { 395115cd2caSopenharmony_cipublic: 396115cd2caSopenharmony_ci /** 397115cd2caSopenharmony_ci * Indicates a custom label. 398115cd2caSopenharmony_ci */ 399115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 400115cd2caSopenharmony_ci 401115cd2caSopenharmony_ci /** 402115cd2caSopenharmony_ci * Indicates a home number. 403115cd2caSopenharmony_ci */ 404115cd2caSopenharmony_ci static const int NUM_HOME = 1; 405115cd2caSopenharmony_ci 406115cd2caSopenharmony_ci /** 407115cd2caSopenharmony_ci * Indicates a mobile phone number. 408115cd2caSopenharmony_ci */ 409115cd2caSopenharmony_ci static const int NUM_MOBILE = 2; 410115cd2caSopenharmony_ci 411115cd2caSopenharmony_ci /** 412115cd2caSopenharmony_ci * Indicates a work number. 413115cd2caSopenharmony_ci */ 414115cd2caSopenharmony_ci static const int NUM_WORK = 3; 415115cd2caSopenharmony_ci 416115cd2caSopenharmony_ci /** 417115cd2caSopenharmony_ci * Indicates a work fax number. 418115cd2caSopenharmony_ci */ 419115cd2caSopenharmony_ci static const int NUM_FAX_WORK = 4; 420115cd2caSopenharmony_ci 421115cd2caSopenharmony_ci /** 422115cd2caSopenharmony_ci * Indicates a home fax number. 423115cd2caSopenharmony_ci */ 424115cd2caSopenharmony_ci static const int NUM_FAX_HOME = 5; 425115cd2caSopenharmony_ci 426115cd2caSopenharmony_ci /** 427115cd2caSopenharmony_ci * Indicates a pager number. 428115cd2caSopenharmony_ci */ 429115cd2caSopenharmony_ci static const int NUM_PAGER = 6; 430115cd2caSopenharmony_ci 431115cd2caSopenharmony_ci /** 432115cd2caSopenharmony_ci * Indicates a number of the OTHER type. 433115cd2caSopenharmony_ci */ 434115cd2caSopenharmony_ci static const int NUM_OTHER = 7; 435115cd2caSopenharmony_ci 436115cd2caSopenharmony_ci /** 437115cd2caSopenharmony_ci * Indicates a callback number. 438115cd2caSopenharmony_ci */ 439115cd2caSopenharmony_ci static const int NUM_CALLBACK = 8; 440115cd2caSopenharmony_ci 441115cd2caSopenharmony_ci /** 442115cd2caSopenharmony_ci * Indicates a car number. 443115cd2caSopenharmony_ci */ 444115cd2caSopenharmony_ci static const int NUM_CAR = 9; 445115cd2caSopenharmony_ci 446115cd2caSopenharmony_ci /** 447115cd2caSopenharmony_ci * Indicates a company director number. 448115cd2caSopenharmony_ci */ 449115cd2caSopenharmony_ci static const int NUM_COMPANY_MAIN = 10; 450115cd2caSopenharmony_ci 451115cd2caSopenharmony_ci /** 452115cd2caSopenharmony_ci * Indicates an Integrated Services Digital Network (ISDN) number. 453115cd2caSopenharmony_ci */ 454115cd2caSopenharmony_ci static const int NUM_ISDN = 11; 455115cd2caSopenharmony_ci 456115cd2caSopenharmony_ci /** 457115cd2caSopenharmony_ci * Indicates a main number. 458115cd2caSopenharmony_ci */ 459115cd2caSopenharmony_ci static const int NUM_MAIN = 12; 460115cd2caSopenharmony_ci 461115cd2caSopenharmony_ci /** 462115cd2caSopenharmony_ci * Indicates a number of the OTHER_FAX type. 463115cd2caSopenharmony_ci */ 464115cd2caSopenharmony_ci static const int NUM_OTHER_FAX = 13; 465115cd2caSopenharmony_ci 466115cd2caSopenharmony_ci /** 467115cd2caSopenharmony_ci * Indicates a radio number. 468115cd2caSopenharmony_ci */ 469115cd2caSopenharmony_ci static const int NUM_RADIO = 14; 470115cd2caSopenharmony_ci 471115cd2caSopenharmony_ci /** 472115cd2caSopenharmony_ci * Indicates a telex number. 473115cd2caSopenharmony_ci */ 474115cd2caSopenharmony_ci static const int NUM_TELEX = 15; 475115cd2caSopenharmony_ci 476115cd2caSopenharmony_ci /** 477115cd2caSopenharmony_ci * Indicates a teletypewriter (TTY) or test-driven development (TDD) number. 478115cd2caSopenharmony_ci */ 479115cd2caSopenharmony_ci static const int NUM_TTY_TDD = 16; 480115cd2caSopenharmony_ci 481115cd2caSopenharmony_ci /** 482115cd2caSopenharmony_ci * Indicates a work mobile phone number. 483115cd2caSopenharmony_ci */ 484115cd2caSopenharmony_ci static const int NUM_WORK_MOBILE = 17; 485115cd2caSopenharmony_ci 486115cd2caSopenharmony_ci /** 487115cd2caSopenharmony_ci * Indicates a work pager number. 488115cd2caSopenharmony_ci */ 489115cd2caSopenharmony_ci static const int NUM_WORK_PAGER = 18; 490115cd2caSopenharmony_ci 491115cd2caSopenharmony_ci /** 492115cd2caSopenharmony_ci * Indicates an assistant number. 493115cd2caSopenharmony_ci */ 494115cd2caSopenharmony_ci static const int NUM_ASSISTANT = 19; 495115cd2caSopenharmony_ci 496115cd2caSopenharmony_ci /** 497115cd2caSopenharmony_ci * Indicates an MMS number. 498115cd2caSopenharmony_ci */ 499115cd2caSopenharmony_ci static const int NUM_MMS = 20; 500115cd2caSopenharmony_ci 501115cd2caSopenharmony_ci /** 502115cd2caSopenharmony_ci * Indicates an invalid label ID. 503115cd2caSopenharmony_ci */ 504115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 505115cd2caSopenharmony_ci 506115cd2caSopenharmony_ci /** 507115cd2caSopenharmony_ci * Indicates the label name of an attribute. 508115cd2caSopenharmony_ci */ 509115cd2caSopenharmony_ci std::string labelName; 510115cd2caSopenharmony_ci 511115cd2caSopenharmony_ci /** 512115cd2caSopenharmony_ci * Indicates the phone number of the contact. 513115cd2caSopenharmony_ci */ 514115cd2caSopenharmony_ci std::string phoneNumber; 515115cd2caSopenharmony_ci 516115cd2caSopenharmony_ci /** 517115cd2caSopenharmony_ci * Indicates the label id. 518115cd2caSopenharmony_ci */ 519115cd2caSopenharmony_ci int labelId = -1; 520115cd2caSopenharmony_ci}; 521115cd2caSopenharmony_ci 522115cd2caSopenharmony_ci/** 523115cd2caSopenharmony_ci * Provides methods for portrait information 524115cd2caSopenharmony_ci */ 525115cd2caSopenharmony_ciclass Portrait { 526115cd2caSopenharmony_cipublic: 527115cd2caSopenharmony_ci /** 528115cd2caSopenharmony_ci * Indicates the uri of the contact portrait. 529115cd2caSopenharmony_ci */ 530115cd2caSopenharmony_ci std::string uri; 531115cd2caSopenharmony_ci}; 532115cd2caSopenharmony_ci/** 533115cd2caSopenharmony_ci * Provides methods for postal address information 534115cd2caSopenharmony_ci */ 535115cd2caSopenharmony_ciclass PostalAddress { 536115cd2caSopenharmony_cipublic: 537115cd2caSopenharmony_ci /** 538115cd2caSopenharmony_ci * Indicates a custom label. 539115cd2caSopenharmony_ci */ 540115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 541115cd2caSopenharmony_ci 542115cd2caSopenharmony_ci /** 543115cd2caSopenharmony_ci * Indicates a home address. 544115cd2caSopenharmony_ci */ 545115cd2caSopenharmony_ci static const int ADDR_HOME = 1; 546115cd2caSopenharmony_ci 547115cd2caSopenharmony_ci /** 548115cd2caSopenharmony_ci * Indicates a work address. 549115cd2caSopenharmony_ci */ 550115cd2caSopenharmony_ci static const int ADDR_WORK = 2; 551115cd2caSopenharmony_ci 552115cd2caSopenharmony_ci /** 553115cd2caSopenharmony_ci * Indicates an address of the OTHER type. 554115cd2caSopenharmony_ci */ 555115cd2caSopenharmony_ci static const int ADDR_OTHER = 3; 556115cd2caSopenharmony_ci 557115cd2caSopenharmony_ci /** 558115cd2caSopenharmony_ci * Indicates an invalid label ID. 559115cd2caSopenharmony_ci */ 560115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 561115cd2caSopenharmony_ci 562115cd2caSopenharmony_ci /** 563115cd2caSopenharmony_ci * Indicates the city where this contact is located. 564115cd2caSopenharmony_ci */ 565115cd2caSopenharmony_ci std::string city; 566115cd2caSopenharmony_ci 567115cd2caSopenharmony_ci /** 568115cd2caSopenharmony_ci * Indicates the country/region where this contact is located. 569115cd2caSopenharmony_ci */ 570115cd2caSopenharmony_ci std::string country; 571115cd2caSopenharmony_ci 572115cd2caSopenharmony_ci /** 573115cd2caSopenharmony_ci * Indicates the label name of an attribute. 574115cd2caSopenharmony_ci */ 575115cd2caSopenharmony_ci std::string labelName; 576115cd2caSopenharmony_ci 577115cd2caSopenharmony_ci /** 578115cd2caSopenharmony_ci * Indicates the neighborhood where this contact is located. 579115cd2caSopenharmony_ci */ 580115cd2caSopenharmony_ci std::string neighborhood; 581115cd2caSopenharmony_ci 582115cd2caSopenharmony_ci /** 583115cd2caSopenharmony_ci * Indicates the post box of this contact. 584115cd2caSopenharmony_ci */ 585115cd2caSopenharmony_ci std::string pobox; 586115cd2caSopenharmony_ci 587115cd2caSopenharmony_ci /** 588115cd2caSopenharmony_ci * Indicates the postal address of this contact. 589115cd2caSopenharmony_ci */ 590115cd2caSopenharmony_ci std::string postalAddress; 591115cd2caSopenharmony_ci 592115cd2caSopenharmony_ci /** 593115cd2caSopenharmony_ci * Indicates the postal code of this contact. 594115cd2caSopenharmony_ci */ 595115cd2caSopenharmony_ci std::string postcode; 596115cd2caSopenharmony_ci 597115cd2caSopenharmony_ci /** 598115cd2caSopenharmony_ci * Indicates the area where this contact is located. 599115cd2caSopenharmony_ci */ 600115cd2caSopenharmony_ci std::string region; 601115cd2caSopenharmony_ci 602115cd2caSopenharmony_ci /** 603115cd2caSopenharmony_ci * Indicates the street where this contact is located. 604115cd2caSopenharmony_ci */ 605115cd2caSopenharmony_ci std::string street; 606115cd2caSopenharmony_ci 607115cd2caSopenharmony_ci /** 608115cd2caSopenharmony_ci * Indicates the label id. 609115cd2caSopenharmony_ci */ 610115cd2caSopenharmony_ci int labelId = -1; 611115cd2caSopenharmony_ci}; 612115cd2caSopenharmony_ci 613115cd2caSopenharmony_ciclass Relation { 614115cd2caSopenharmony_cipublic: 615115cd2caSopenharmony_ci /** 616115cd2caSopenharmony_ci * Indicates a custom label. 617115cd2caSopenharmony_ci */ 618115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 619115cd2caSopenharmony_ci 620115cd2caSopenharmony_ci /** 621115cd2caSopenharmony_ci * Indicates an assistant. 622115cd2caSopenharmony_ci */ 623115cd2caSopenharmony_ci static const int RELATION_ASSISTANT = 1; 624115cd2caSopenharmony_ci 625115cd2caSopenharmony_ci /** 626115cd2caSopenharmony_ci * Indicates a brother. 627115cd2caSopenharmony_ci */ 628115cd2caSopenharmony_ci static const int RELATION_BROTHER = 2; 629115cd2caSopenharmony_ci 630115cd2caSopenharmony_ci /** 631115cd2caSopenharmony_ci * Indicates a child. 632115cd2caSopenharmony_ci */ 633115cd2caSopenharmony_ci static const int RELATION_CHILD = 3; 634115cd2caSopenharmony_ci 635115cd2caSopenharmony_ci /** 636115cd2caSopenharmony_ci * Indicates a domestic partner. 637115cd2caSopenharmony_ci */ 638115cd2caSopenharmony_ci static const int RELATION_DOMESTIC_PARTNER = 4; 639115cd2caSopenharmony_ci 640115cd2caSopenharmony_ci /** 641115cd2caSopenharmony_ci * Indicates a father. 642115cd2caSopenharmony_ci */ 643115cd2caSopenharmony_ci static const int RELATION_FATHER = 5; 644115cd2caSopenharmony_ci 645115cd2caSopenharmony_ci /** 646115cd2caSopenharmony_ci * Indicates a friend. 647115cd2caSopenharmony_ci */ 648115cd2caSopenharmony_ci static const int RELATION_FRIEND = 6; 649115cd2caSopenharmony_ci 650115cd2caSopenharmony_ci /** 651115cd2caSopenharmony_ci * Indicates a manager. 652115cd2caSopenharmony_ci */ 653115cd2caSopenharmony_ci static const int RELATION_MANAGER = 7; 654115cd2caSopenharmony_ci 655115cd2caSopenharmony_ci /** 656115cd2caSopenharmony_ci * Indicates a mother. 657115cd2caSopenharmony_ci */ 658115cd2caSopenharmony_ci static const int RELATION_MOTHER = 8; 659115cd2caSopenharmony_ci 660115cd2caSopenharmony_ci /** 661115cd2caSopenharmony_ci * Indicates a parent. 662115cd2caSopenharmony_ci */ 663115cd2caSopenharmony_ci static const int RELATION_PARENT = 9; 664115cd2caSopenharmony_ci 665115cd2caSopenharmony_ci /** 666115cd2caSopenharmony_ci * Indicates a partner. 667115cd2caSopenharmony_ci */ 668115cd2caSopenharmony_ci static const int RELATION_PARTNER = 10; 669115cd2caSopenharmony_ci 670115cd2caSopenharmony_ci /** 671115cd2caSopenharmony_ci * Indicates a referrer. 672115cd2caSopenharmony_ci */ 673115cd2caSopenharmony_ci static const int RELATION_REFERRED_BY = 11; 674115cd2caSopenharmony_ci 675115cd2caSopenharmony_ci /** 676115cd2caSopenharmony_ci * Indicates a relative. 677115cd2caSopenharmony_ci */ 678115cd2caSopenharmony_ci static const int RELATION_RELATIVE = 12; 679115cd2caSopenharmony_ci 680115cd2caSopenharmony_ci /** 681115cd2caSopenharmony_ci * Indicates a sister. 682115cd2caSopenharmony_ci */ 683115cd2caSopenharmony_ci static const int RELATION_SISTER = 13; 684115cd2caSopenharmony_ci 685115cd2caSopenharmony_ci /** 686115cd2caSopenharmony_ci * Indicates a spouse. 687115cd2caSopenharmony_ci */ 688115cd2caSopenharmony_ci static const int RELATION_SPOUSE = 14; 689115cd2caSopenharmony_ci 690115cd2caSopenharmony_ci /** 691115cd2caSopenharmony_ci * Indicates an invalid label ID. 692115cd2caSopenharmony_ci */ 693115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 694115cd2caSopenharmony_ci 695115cd2caSopenharmony_ci /** 696115cd2caSopenharmony_ci * Indicates the label name of an attribute. 697115cd2caSopenharmony_ci */ 698115cd2caSopenharmony_ci std::string labelName; 699115cd2caSopenharmony_ci 700115cd2caSopenharmony_ci /** 701115cd2caSopenharmony_ci * Indicates the relation name. 702115cd2caSopenharmony_ci */ 703115cd2caSopenharmony_ci std::string relationName; 704115cd2caSopenharmony_ci 705115cd2caSopenharmony_ci /** 706115cd2caSopenharmony_ci * Indicates the label id. 707115cd2caSopenharmony_ci */ 708115cd2caSopenharmony_ci int labelId = -1; 709115cd2caSopenharmony_ci}; 710115cd2caSopenharmony_ci 711115cd2caSopenharmony_ciclass SipAddress { 712115cd2caSopenharmony_cipublic: 713115cd2caSopenharmony_ci /** 714115cd2caSopenharmony_ci * Indicates a custom label. 715115cd2caSopenharmony_ci */ 716115cd2caSopenharmony_ci static const int CUSTOM_LABEL = 0; 717115cd2caSopenharmony_ci 718115cd2caSopenharmony_ci /** 719115cd2caSopenharmony_ci * Indicates a home SIP address. 720115cd2caSopenharmony_ci */ 721115cd2caSopenharmony_ci static const int SIP_HOME = 1; 722115cd2caSopenharmony_ci 723115cd2caSopenharmony_ci /** 724115cd2caSopenharmony_ci * Indicates a work SIP address. 725115cd2caSopenharmony_ci */ 726115cd2caSopenharmony_ci static const int SIP_WORK = 2; 727115cd2caSopenharmony_ci 728115cd2caSopenharmony_ci /** 729115cd2caSopenharmony_ci * Indicates an SIP address of the OTHER type. 730115cd2caSopenharmony_ci */ 731115cd2caSopenharmony_ci static const int SIP_OTHER = 3; 732115cd2caSopenharmony_ci 733115cd2caSopenharmony_ci /** 734115cd2caSopenharmony_ci * Indicates an invalid label ID. 735115cd2caSopenharmony_ci */ 736115cd2caSopenharmony_ci static const int INVALID_LABEL_ID = -1; 737115cd2caSopenharmony_ci 738115cd2caSopenharmony_ci /** 739115cd2caSopenharmony_ci * Indicates the label name of an attribute. 740115cd2caSopenharmony_ci */ 741115cd2caSopenharmony_ci std::string labelName; 742115cd2caSopenharmony_ci 743115cd2caSopenharmony_ci /** 744115cd2caSopenharmony_ci * Indicates the SIP address. 745115cd2caSopenharmony_ci */ 746115cd2caSopenharmony_ci std::string sipAddress; 747115cd2caSopenharmony_ci 748115cd2caSopenharmony_ci /** 749115cd2caSopenharmony_ci * Indicates the label id. 750115cd2caSopenharmony_ci */ 751115cd2caSopenharmony_ci int labelId = -1; 752115cd2caSopenharmony_ci}; 753115cd2caSopenharmony_ci 754115cd2caSopenharmony_ciclass Website { 755115cd2caSopenharmony_cipublic: 756115cd2caSopenharmony_ci std::string website; 757115cd2caSopenharmony_ci}; 758115cd2caSopenharmony_ci 759115cd2caSopenharmony_ci/** 760115cd2caSopenharmony_ci * Provides methods for contact information 761115cd2caSopenharmony_ci */ 762115cd2caSopenharmony_ciclass Contacts { 763115cd2caSopenharmony_cipublic: 764115cd2caSopenharmony_ci /** 765115cd2caSopenharmony_ci * Indicates the contact ID. 766115cd2caSopenharmony_ci */ 767115cd2caSopenharmony_ci static const int INVALID_CONTACT_ID = -1; 768115cd2caSopenharmony_ci 769115cd2caSopenharmony_ci /** 770115cd2caSopenharmony_ci * Indicates the contact ID. 771115cd2caSopenharmony_ci */ 772115cd2caSopenharmony_ci int id; 773115cd2caSopenharmony_ci 774115cd2caSopenharmony_ci /** 775115cd2caSopenharmony_ci * Indicates the query key that identifies the contact. 776115cd2caSopenharmony_ci */ 777115cd2caSopenharmony_ci std::string key; 778115cd2caSopenharmony_ci 779115cd2caSopenharmony_ci /** 780115cd2caSopenharmony_ci * Indicates the contact attributes. 781115cd2caSopenharmony_ci */ 782115cd2caSopenharmony_ci ContactAttributes contactAttributes; 783115cd2caSopenharmony_ci 784115cd2caSopenharmony_ci /** 785115cd2caSopenharmony_ci * Indicates an email address of the contact. 786115cd2caSopenharmony_ci */ 787115cd2caSopenharmony_ci std::vector<Email> emails; 788115cd2caSopenharmony_ci 789115cd2caSopenharmony_ci /** 790115cd2caSopenharmony_ci * Indicates an event (special date) of the contact. 791115cd2caSopenharmony_ci */ 792115cd2caSopenharmony_ci std::vector<Event> events; 793115cd2caSopenharmony_ci 794115cd2caSopenharmony_ci /** 795115cd2caSopenharmony_ci * Indicates a group of the contact. 796115cd2caSopenharmony_ci */ 797115cd2caSopenharmony_ci std::vector<Group> groups; 798115cd2caSopenharmony_ci 799115cd2caSopenharmony_ci /** 800115cd2caSopenharmony_ci * Indicates an IM address of the contact. 801115cd2caSopenharmony_ci */ 802115cd2caSopenharmony_ci std::vector<ImAddress> imAddresses; 803115cd2caSopenharmony_ci 804115cd2caSopenharmony_ci /** 805115cd2caSopenharmony_ci * Indicates a phone number of the contact. 806115cd2caSopenharmony_ci */ 807115cd2caSopenharmony_ci std::vector<PhoneNumber> phoneNumbers; 808115cd2caSopenharmony_ci 809115cd2caSopenharmony_ci /** 810115cd2caSopenharmony_ci * Indicates the contact portrait. 811115cd2caSopenharmony_ci */ 812115cd2caSopenharmony_ci Portrait portrait; 813115cd2caSopenharmony_ci 814115cd2caSopenharmony_ci /** 815115cd2caSopenharmony_ci * Indicates a postal address of the contact. 816115cd2caSopenharmony_ci */ 817115cd2caSopenharmony_ci std::vector<PostalAddress> postalAddresses; 818115cd2caSopenharmony_ci 819115cd2caSopenharmony_ci /** 820115cd2caSopenharmony_ci * Indicates a relation of the contact. 821115cd2caSopenharmony_ci */ 822115cd2caSopenharmony_ci std::vector<Relation> relations; 823115cd2caSopenharmony_ci 824115cd2caSopenharmony_ci /** 825115cd2caSopenharmony_ci * Indicates a Session Initiation Protocol (SIP) address of the contact. 826115cd2caSopenharmony_ci */ 827115cd2caSopenharmony_ci std::vector<SipAddress> sipAddresses; 828115cd2caSopenharmony_ci 829115cd2caSopenharmony_ci /** 830115cd2caSopenharmony_ci * Indicates a website of the contact. 831115cd2caSopenharmony_ci */ 832115cd2caSopenharmony_ci std::vector<Website> websites; 833115cd2caSopenharmony_ci 834115cd2caSopenharmony_ci /** 835115cd2caSopenharmony_ci * Indicates the contact name. 836115cd2caSopenharmony_ci */ 837115cd2caSopenharmony_ci Name name; 838115cd2caSopenharmony_ci 839115cd2caSopenharmony_ci /** 840115cd2caSopenharmony_ci * Indicates the contact nickname. 841115cd2caSopenharmony_ci */ 842115cd2caSopenharmony_ci NickName nickName; 843115cd2caSopenharmony_ci /** 844115cd2caSopenharmony_ci * Indicates the contact note. 845115cd2caSopenharmony_ci */ 846115cd2caSopenharmony_ci Note note; 847115cd2caSopenharmony_ci /** 848115cd2caSopenharmony_ci * Indicates organization information about the contact. 849115cd2caSopenharmony_ci */ 850115cd2caSopenharmony_ci Organization organization; 851115cd2caSopenharmony_ci}; 852115cd2caSopenharmony_ci} // namespace ContactsApi 853115cd2caSopenharmony_ci} // namespace OHOS 854115cd2caSopenharmony_ci#endif // CONTACT_NAPI_OBJECT_H 855