Add message_alert property (contact, person, group)
[platform/core/pim/contacts-service.git] / common / ctsvc_view.c
1 /*
2  * Contacts Service
3  *
4  * Copyright (c) 2010 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Dohyung Jin <dh.jin@samsung.com>
7  *                 Jongwon Lee <gogosing.lee@samsung.com>
8  *                 Donghee Ye <donghee.ye@samsung.com>
9  *
10  * Licensed under the Apache License, Version 2.0 (the "License");
11  * you may not use this file except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  */
23
24 #include "contacts.h"
25 #include "ctsvc_internal.h"
26 #include "ctsvc_view.h"
27
28 API const _contacts_address_book_property_ids _contacts_address_book = {
29         ._uri           = CTSVC_VIEW_URI_ADDRESSBOOK,
30         .id                     = CTSVC_PROPERTY_ADDRESSBOOK_ID,
31         .account_id     = CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,
32         .name           = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
33         .mode           = CTSVC_PROPERTY_ADDRESSBOOK_MODE
34 };
35
36 API const _contacts_group_property_ids _contacts_group = {
37         ._uri                   = CTSVC_VIEW_URI_GROUP,
38         .id                             = CTSVC_PROPERTY_GROUP_ID,
39         .address_book_id        = CTSVC_PROPERTY_GROUP_ADDRESSBOOK_ID,
40         .name                   = CTSVC_PROPERTY_GROUP_NAME,
41         .ringtone_path  = CTSVC_PROPERTY_GROUP_RINGTONE,
42         .image_path             = CTSVC_PROPERTY_GROUP_IMAGE,
43         .vibration              = CTSVC_PROPERTY_GROUP_VIBRATION,
44         .extra_data             = CTSVC_PROPERTY_GROUP_EXTRA_DATA,
45         .is_read_only   = CTSVC_PROPERTY_GROUP_IS_READ_ONLY,
46         .message_alert = CTSVC_PROPERTY_GROUP_MESSAGE_ALERT
47 };
48
49 API const _contacts_person_property_ids _contacts_person = {
50         ._uri                                   = CTSVC_VIEW_URI_PERSON,
51         .id                                             = CTSVC_PROPERTY_PERSON_ID,
52         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
53         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
54         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
55         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
56         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
57         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
58         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
59         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
60         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
61         .favorite_priority              = CTSVC_PROPERTY_PERSON_FAVORITE_PRIORITY,
62         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
63         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
64         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
65         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
66 };
67
68 API const _contacts_contact_property_ids _contacts_contact = {
69         ._uri                                   = CTSVC_VIEW_URI_CONTACT,
70         .id                                             = CTSVC_PROPERTY_CONTACT_ID,
71         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
72         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
73         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
74         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
75         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
76         .is_favorite                    = CTSVC_PROPERTY_CONTACT_IS_FAVORITE,
77         .has_phonenumber                = CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,
78         .has_email                              = CTSVC_PROPERTY_CONTACT_HAS_EMAIL,
79         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
80         .uid                                    = CTSVC_PROPERTY_CONTACT_UID,
81         .vibration                              = CTSVC_PROPERTY_CONTACT_VIBRATION,
82         .message_alert          = CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,
83         .changed_time                   = CTSVC_PROPERTY_CONTACT_CHANGED_TIME,
84         .link_mode              = CTSVC_PROPERTY_CONTACT_LINK_MODE,
85         .name                                   = CTSVC_PROPERTY_CONTACT_NAME,
86         .company                                = CTSVC_PROPERTY_CONTACT_COMPANY,
87         .note                                   = CTSVC_PROPERTY_CONTACT_NOTE,
88         .number                                 = CTSVC_PROPERTY_CONTACT_NUMBER,
89         .email                                  = CTSVC_PROPERTY_CONTACT_EMAIL,
90         .event                                  = CTSVC_PROPERTY_CONTACT_EVENT,
91         .messenger                              = CTSVC_PROPERTY_CONTACT_MESSENGER,
92         .address                                = CTSVC_PROPERTY_CONTACT_ADDRESS,
93         .url                                    = CTSVC_PROPERTY_CONTACT_URL,
94         .nickname                               = CTSVC_PROPERTY_CONTACT_NICKNAME,
95         .profile                                = CTSVC_PROPERTY_CONTACT_PROFILE,
96         .relationship                   = CTSVC_PROPERTY_CONTACT_RELATIONSHIP,
97         .image                                  = CTSVC_PROPERTY_CONTACT_IMAGE,
98         .group_relation                 = CTSVC_PROPERTY_CONTACT_GROUP_RELATION,
99         .extension                              = CTSVC_PROPERTY_CONTACT_EXTENSION,
100 };
101
102
103 API const _contacts_my_profile_property_ids _contacts_my_profile = {
104         ._uri                                   = CTSVC_VIEW_URI_MY_PROFILE,
105         .id                                             = CTSVC_PROPERTY_MY_PROFILE_ID,
106         .display_name                   = CTSVC_PROPERTY_MY_PROFILE_DISPLAY_NAME,
107         .address_book_id                = CTSVC_PROPERTY_MY_PROFILE_ADDRESSBOOK_ID,
108         .image_thumbnail_path   = CTSVC_PROPERTY_MY_PROFILE_IMAGE_THUMBNAIL,
109         .uid                                    = CTSVC_PROPERTY_MY_PROFILE_UID,
110         .changed_time                   = CTSVC_PROPERTY_MY_PROFILE_CHANGED_TIME,
111         .name                                   = CTSVC_PROPERTY_MY_PROFILE_NAME,
112         .company                                = CTSVC_PROPERTY_MY_PROFILE_COMPANY,
113         .note                                   = CTSVC_PROPERTY_MY_PROFILE_NOTE,
114         .number                                 = CTSVC_PROPERTY_MY_PROFILE_NUMBER,
115         .email                                  = CTSVC_PROPERTY_MY_PROFILE_EMAIL,
116         .event                                  = CTSVC_PROPERTY_MY_PROFILE_EVENT,
117         .messenger                              = CTSVC_PROPERTY_MY_PROFILE_MESSENGER,
118         .address                                = CTSVC_PROPERTY_MY_PROFILE_ADDRESS,
119         .url                                    = CTSVC_PROPERTY_MY_PROFILE_URL,
120         .nickname                               = CTSVC_PROPERTY_MY_PROFILE_NICKNAME,
121         .profile                                = CTSVC_PROPERTY_MY_PROFILE_PROFILE,
122         .relationship                   = CTSVC_PROPERTY_MY_PROFILE_RELATIONSHIP,
123         .image                                  = CTSVC_PROPERTY_MY_PROFILE_IMAGE,
124         .extension                              = CTSVC_PROPERTY_MY_PROFILE_EXTENSION,
125 };
126
127 API const _contacts_simple_contact_property_ids _contacts_simple_contact = {
128         ._uri                                   = CTSVC_VIEW_URI_SIMPLE_CONTACT,
129         .id                                             = CTSVC_PROPERTY_CONTACT_ID,
130         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
131         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
132         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
133         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
134         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
135         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
136         .is_favorite                    = CTSVC_PROPERTY_CONTACT_IS_FAVORITE,
137         .has_phonenumber                = CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,
138         .has_email                              = CTSVC_PROPERTY_CONTACT_HAS_EMAIL,
139         .uid                                    = CTSVC_PROPERTY_CONTACT_UID,
140         .vibration                              = CTSVC_PROPERTY_CONTACT_VIBRATION,
141         .message_alert          = CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,
142         .changed_time                   = CTSVC_PROPERTY_CONTACT_CHANGED_TIME,
143 };
144
145 API const _contacts_name_property_ids _contacts_name = {
146         ._uri                   = CTSVC_VIEW_URI_NAME,
147         .id                             = CTSVC_PROPERTY_NAME_ID,
148         .contact_id             = CTSVC_PROPERTY_NAME_CONTACT_ID,
149         .first                  = CTSVC_PROPERTY_NAME_FIRST,
150         .last                   = CTSVC_PROPERTY_NAME_LAST,
151         .addition               = CTSVC_PROPERTY_NAME_ADDITION,
152         .suffix                 = CTSVC_PROPERTY_NAME_SUFFIX,
153         .prefix                 = CTSVC_PROPERTY_NAME_PREFIX,
154         .phonetic_first = CTSVC_PROPERTY_NAME_PHONETIC_FIRST,
155         .phonetic_middle= CTSVC_PROPERTY_NAME_PHONETIC_MIDDLE,
156         .phonetic_last  = CTSVC_PROPERTY_NAME_PHONETIC_LAST
157 };
158
159 API const _contacts_number_property_ids _contacts_number = {
160         ._uri           = CTSVC_VIEW_URI_NUMBER,
161         .id                     = CTSVC_PROPERTY_NUMBER_ID,
162         .contact_id     = CTSVC_PROPERTY_NUMBER_CONTACT_ID,
163         .type           = CTSVC_PROPERTY_NUMBER_TYPE,
164         .label          = CTSVC_PROPERTY_NUMBER_LABEL,
165         .is_default     = CTSVC_PROPERTY_NUMBER_IS_DEFAULT,
166         .number         = CTSVC_PROPERTY_NUMBER_NUMBER
167 };
168
169 API const _contacts_email_property_ids _contacts_email = {
170         ._uri           = CTSVC_VIEW_URI_EMAIL,
171         .id                     = CTSVC_PROPERTY_EMAIL_ID,
172         .contact_id     = CTSVC_PROPERTY_EMAIL_CONTACT_ID,
173         .type           = CTSVC_PROPERTY_EMAIL_TYPE,
174         .label          = CTSVC_PROPERTY_EMAIL_LABEL,
175         .is_default     = CTSVC_PROPERTY_EMAIL_IS_DEFAULT,
176         .email          = CTSVC_PROPERTY_EMAIL_EMAIL
177 };
178
179 API const _contacts_address_property_ids _contacts_address = {
180         ._uri                   = CTSVC_VIEW_URI_ADDRESS,
181         .id                             = CTSVC_PROPERTY_ADDRESS_ID,
182         .contact_id             = CTSVC_PROPERTY_ADDRESS_CONTACT_ID,
183         .type                   = CTSVC_PROPERTY_ADDRESS_TYPE,
184         .label                  = CTSVC_PROPERTY_ADDRESS_LABEL,
185         .postbox                = CTSVC_PROPERTY_ADDRESS_POSTBOX,
186         .postal_code    = CTSVC_PROPERTY_ADDRESS_POSTAL_CODE,
187         .region                 = CTSVC_PROPERTY_ADDRESS_REGION,
188         .locality               = CTSVC_PROPERTY_ADDRESS_LOCALITY,
189         .street                 = CTSVC_PROPERTY_ADDRESS_STREET,
190         .country                = CTSVC_PROPERTY_ADDRESS_COUNTRY,
191         .extended               = CTSVC_PROPERTY_ADDRESS_EXTENDED,
192         .is_default             = CTSVC_PROPERTY_ADDRESS_IS_DEFAULT
193 };
194
195 API const _contacts_url_property_ids _contacts_url = {
196         ._uri           = CTSVC_VIEW_URI_URL,
197         .id                     = CTSVC_PROPERTY_URL_ID,
198         .contact_id     = CTSVC_PROPERTY_URL_CONTACT_ID,
199         .type           = CTSVC_PROPERTY_URL_TYPE,
200         .label          = CTSVC_PROPERTY_URL_LABEL,
201         .url            = CTSVC_PROPERTY_URL_URL
202 };
203
204 API const _contacts_event_property_ids _contacts_event = {
205         ._uri           = CTSVC_VIEW_URI_EVENT,
206         .id                     = CTSVC_PROPERTY_EVENT_ID,
207         .contact_id     = CTSVC_PROPERTY_EVENT_CONTACT_ID,
208         .type           = CTSVC_PROPERTY_EVENT_TYPE,
209         .label          = CTSVC_PROPERTY_EVENT_LABEL,
210         .date           = CTSVC_PROPERTY_EVENT_DATE,
211         .is_lunar       = CTSVC_PROPERTY_EVENT_IS_LUNAR,
212         .lunar_date     = CTSVC_PROPERTY_EVENT_LUNAR_DATE
213 };
214
215 API const _contacts_company_property_ids _contacts_company = {
216         ._uri                   = CTSVC_VIEW_URI_COMPANY,
217         .id                             = CTSVC_PROPERTY_COMPANY_ID,
218         .contact_id             = CTSVC_PROPERTY_COMPANY_CONTACT_ID,
219         .type                   = CTSVC_PROPERTY_COMPANY_TYPE,
220         .label                  = CTSVC_PROPERTY_COMPANY_LABEL,
221         .name                   = CTSVC_PROPERTY_COMPANY_NAME,
222         .department             = CTSVC_PROPERTY_COMPANY_DEPARTMENT,
223         .job_title              = CTSVC_PROPERTY_COMPANY_JOB_TITLE,
224         .assistant_name = CTSVC_PROPERTY_COMPANY_ASSISTANT_NAME,
225         .role                   = CTSVC_PROPERTY_COMPANY_ROLE,
226         .logo                   = CTSVC_PROPERTY_COMPANY_LOGO,
227         .location               = CTSVC_PROPERTY_COMPANY_LOCATION,
228         .description    = CTSVC_PROPERTY_COMPANY_DESCRIPTION,
229         .phonetic_name  = CTSVC_PROPERTY_COMPANY_PHONETIC_NAME,
230 };
231
232 API const _contacts_nickname_property_ids _contacts_nickname = {
233         ._uri           = CTSVC_VIEW_URI_NICKNAME,
234         .id                     = CTSVC_PROPERTY_NICKNAME_ID,
235         .contact_id     = CTSVC_PROPERTY_NICKNAME_CONTACT_ID,
236         .name           = CTSVC_PROPERTY_NICKNAME_NAME,
237 };
238
239 API const _contacts_note_property_ids _contacts_note = {
240         ._uri           = CTSVC_VIEW_URI_NOTE,
241         .id                     = CTSVC_PROPERTY_NOTE_ID,
242         .contact_id     = CTSVC_PROPERTY_NOTE_CONTACT_ID,
243         .note           = CTSVC_PROPERTY_NOTE_NOTE
244 };
245
246 API const _contacts_profile_property_ids _contacts_profile = {
247         ._uri                   = CTSVC_VIEW_URI_PROFILE,
248         .id                     = CTSVC_PROPERTY_PROFILE_ID,
249         .uid                    = CTSVC_PROPERTY_PROFILE_UID,
250         .text                   = CTSVC_PROPERTY_PROFILE_TEXT,
251         .order          = CTSVC_PROPERTY_PROFILE_ORDER,
252         .service_operation      = CTSVC_PROPERTY_PROFILE_SERVICE_OPERATION,
253         .mime           = CTSVC_PROPERTY_PROFILE_MIME,
254         .app_id         = CTSVC_PROPERTY_PROFILE_APP_ID,
255         .uri                    = CTSVC_PROPERTY_PROFILE_URI,
256         .category               = CTSVC_PROPERTY_PROFILE_CATEGORY,
257         .extra_data     = CTSVC_PROPERTY_PROFILE_EXTRA_DATA,
258         .contact_id     = CTSVC_PROPERTY_PROFILE_CONTACT_ID
259 };
260
261 API const _contacts_group_relation_property_ids _contacts_group_relation = {
262         ._uri           = CTSVC_VIEW_URI_GROUP_RELATION,
263         .id                     = CTSVC_PROPERTY_GROUP_RELATION_ID,
264         .group_id       = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
265         .contact_id     = CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,
266         .name           = CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME,
267 };
268
269 API const _contacts_relationship_property_ids _contacts_relationship = {
270         ._uri           = CTSVC_VIEW_URI_RELATIONSHIP,
271         .id                     = CTSVC_PROPERTY_RELATIONSHIP_ID,
272         .contact_id     = CTSVC_PROPERTY_RELATIONSHIP_CONTACT_ID,
273         .type           = CTSVC_PROPERTY_RELATIONSHIP_TYPE,
274         .label          = CTSVC_PROPERTY_RELATIONSHIP_LABEL,
275         .name           = CTSVC_PROPERTY_RELATIONSHIP_NAME,
276 };
277
278 API const _contacts_image_property_ids _contacts_image = {
279         ._uri           = CTSVC_VIEW_URI_IMAGE,
280         .id                     = CTSVC_PROPERTY_IMAGE_ID,
281         .contact_id     = CTSVC_PROPERTY_IMAGE_CONTACT_ID,
282         .type           = CTSVC_PROPERTY_IMAGE_TYPE,
283         .label          = CTSVC_PROPERTY_IMAGE_LABEL,
284         .path           = CTSVC_PROPERTY_IMAGE_PATH,
285         .is_default = CTSVC_PROPERTY_IMAGE_IS_DEFAULT,
286 };
287
288 API const _contacts_messenger_property_ids _contacts_messenger = {
289         ._uri           = CTSVC_VIEW_URI_MESSENGER,
290         .id                     = CTSVC_PROPERTY_MESSENGER_ID,
291         .contact_id     = CTSVC_PROPERTY_MESSENGER_CONTACT_ID,
292         .type           = CTSVC_PROPERTY_MESSENGER_TYPE,
293         .label          = CTSVC_PROPERTY_MESSENGER_LABEL,
294         .im_id          = CTSVC_PROPERTY_MESSENGER_IM_ID,
295 };
296
297 API const _contacts_sdn_property_ids _contacts_sdn = {
298         ._uri   = CTSVC_VIEW_URI_SDN,
299         .id             = CTSVC_PROPERTY_SDN_ID,
300         .name   = CTSVC_PROPERTY_SDN_NAME,
301         .number = CTSVC_PROPERTY_SDN_NUMBER,
302 };
303
304 API const _contacts_speeddial_property_ids _contacts_speeddial = {
305         ._uri                                   = CTSVC_VIEW_URI_SPEEDDIAL,
306         .speeddial_number               = CTSVC_PROPERTY_SPEEDDIAL_DIAL_NUMBER,
307         .number_id                              = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_ID,
308         .number                                 = CTSVC_PROPERTY_SPEEDDIAL_NUMBER,
309         .number_label                   = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_LABEL,
310         .number_type                    = CTSVC_PROPERTY_SPEEDDIAL_NUMBER_TYPE,
311         .person_id                              = CTSVC_PROPERTY_SPEEDDIAL_PERSON_ID,
312         .display_name                   = CTSVC_PROPERTY_SPEEDDIAL_DISPLAY_NAME,
313         .image_thumbnail_path   = CTSVC_PROPERTY_SPEEDDIAL_IMAGE_THUMBNAIL,
314 };
315
316 API const _contacts_contact_updated_info_property_ids _contacts_contact_updated_info = {
317         ._uri                   = CTSVC_VIEW_URI_CONTACTS_UPDATED_INFO,
318         .contact_id             = CTSVC_PROPERTY_UPDATE_INFO_ID,
319         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
320         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
321         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
322         .image_changed  = CTSVC_PROPERTY_UPDATE_INFO_IMAGE_CHANGED,
323 };
324
325 API const _contacts_my_profile_updated_info_property_ids _contacts_my_profile_updated_info = {
326         ._uri                   = CTSVC_VIEW_URI_MY_PROFILE_UPDATED_INFO,
327         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
328         .last_changed_type      = CTSVC_PROPERTY_UPDATE_INFO_LAST_CHANGED_TYPE,
329         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
330 };
331
332 API const _contacts_group_updated_info_property_ids _contacts_group_updated_info = {
333         ._uri                   = CTSVC_VIEW_URI_GROUPS_UPDATED_INFO,
334         .group_id               = CTSVC_PROPERTY_UPDATE_INFO_ID,
335         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
336         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
337         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
338 };
339
340 API const _contacts_group_member_updated_info_property_ids _contacts_group_member_updated_info = {
341         ._uri                   = CTSVC_VIEW_URI_GROUPS_MEMBER_UPDATED_INFO,
342         .group_id               = CTSVC_PROPERTY_UPDATE_INFO_ID,
343         .address_book_id        = CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID,
344         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
345 };
346
347 API const _contacts_grouprel_updated_info_property_ids _contacts_grouprel_updated_info = {
348         ._uri                   = CTSVC_VIEW_URI_GROUPRELS_UPDATED_INFO,
349         .group_id               = CTSVC_PROPERTY_GROUP_ID,
350         .contact_id             = CTSVC_PROPERTY_CONTACT_ID,
351         .address_book_id        = CTSVC_PROPERTY_ADDRESSBOOK_ID,
352         .type                   = CTSVC_PROPERTY_UPDATE_INFO_TYPE,
353         .version                = CTSVC_PROPERTY_UPDATE_INFO_VERSION,
354 };
355
356 API const _contacts_activity_property_ids _contacts_activity = {
357         ._uri                   = CTSVC_VIEW_URI_ACTIVITY,
358         .id                             = CTSVC_PROPERTY_ACTIVITY_ID,
359         .contact_id             = CTSVC_PROPERTY_ACTIVITY_CONTACT_ID,
360         .source_name    = CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,
361         .status                 = CTSVC_PROPERTY_ACTIVITY_STATUS,
362         .timestamp              = CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,
363         .service_operation      = CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION,
364         .uri                            = CTSVC_PROPERTY_ACTIVITY_URI,
365         .photo                  = CTSVC_PROPERTY_ACTIVITY_ACTIVITY_PHOTO,
366 };
367
368 API const _contacts_activity_photo_property_ids _contacts_activity_photo = {
369         ._uri                   = CTSVC_VIEW_URI_ACTIVITY_PHOTO,
370         .id                             = CTSVC_PROPERTY_ACTIVITY_PHOTO_ID,
371         .activity_id    = CTSVC_PROPERTY_ACTIVITY_PHOTO_ACTIVITY_ID,
372         .photo_url              = CTSVC_PROPERTY_ACTIVITY_PHOTO_URL,
373         .sort_index             = CTSVC_PROPERTY_ACTIVITY_PHOTO_SORT_INDEX,
374 };
375
376 API const _contacts_phone_log_property_ids _contacts_phone_log = {
377         ._uri                   = CTSVC_VIEW_URI_PHONELOG,
378         .id                             = CTSVC_PROPERTY_PHONELOG_ID,
379         .person_id              = CTSVC_PROPERTY_PHONELOG_PERSON_ID,
380         .address                = CTSVC_PROPERTY_PHONELOG_ADDRESS,
381         .log_time               = CTSVC_PROPERTY_PHONELOG_LOG_TIME,
382         .log_type               = CTSVC_PROPERTY_PHONELOG_LOG_TYPE,
383         .extra_data1    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,
384         .extra_data2    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,
385 };
386
387 API const _contacts_extension_property_ids _contacts_extension = {
388         ._uri           = CTSVC_VIEW_URI_EXTENSION,
389         .id                     = CTSVC_PROPERTY_EXTENSION_ID,
390         .contact_id     = CTSVC_PROPERTY_EXTENSION_CONTACT_ID,
391         .data1          = CTSVC_PROPERTY_EXTENSION_DATA1,
392         .data2          = CTSVC_PROPERTY_EXTENSION_DATA2,
393         .data3          = CTSVC_PROPERTY_EXTENSION_DATA3,
394         .data4          = CTSVC_PROPERTY_EXTENSION_DATA4,
395         .data5          = CTSVC_PROPERTY_EXTENSION_DATA5,
396         .data6          = CTSVC_PROPERTY_EXTENSION_DATA6,
397         .data7          = CTSVC_PROPERTY_EXTENSION_DATA7,
398         .data8          = CTSVC_PROPERTY_EXTENSION_DATA8,
399         .data9          = CTSVC_PROPERTY_EXTENSION_DATA9,
400         .data10         = CTSVC_PROPERTY_EXTENSION_DATA10,
401         .data11         = CTSVC_PROPERTY_EXTENSION_DATA11,
402         .data12         = CTSVC_PROPERTY_EXTENSION_DATA12,
403 };
404
405 API const _contacts_person_contact_property_ids _contacts_person_contact = {
406         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_CONTACT,
407         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
408         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
409         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
410         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
411         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
412         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
413         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
414         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
415         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
416         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
417         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
418         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
419         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
420         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
421         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
422         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
423         .address_book_name              = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
424         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE
425 };
426
427 API const _contacts_person_number_property_ids _contacts_person_number = {
428         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_NUMBER,
429         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
430         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
431         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
432         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
433         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
434         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
435         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
436         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
437         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
438         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
439         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
440         .number_id                      = CTSVC_PROPERTY_NUMBER_ID,
441         .type                           = CTSVC_PROPERTY_NUMBER_TYPE,
442         .label                          = CTSVC_PROPERTY_NUMBER_LABEL,
443         .is_primary_default     = CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,
444         .number                         = CTSVC_PROPERTY_NUMBER_NUMBER,
445         .number_filter          = CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,
446 };
447
448 API const _contacts_person_email_property_ids _contacts_person_email = {
449         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_EMAIL,
450         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
451         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
452         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
453         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
454         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
455         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
456         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
457         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
458         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
459         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
460         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
461         .email_id                       = CTSVC_PROPERTY_EMAIL_ID,
462         .type                           = CTSVC_PROPERTY_EMAIL_TYPE,
463         .label                          = CTSVC_PROPERTY_EMAIL_LABEL,
464         .is_primary_default     = CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,
465         .email                          = CTSVC_PROPERTY_EMAIL_EMAIL
466 };
467
468 API const _contacts_person_usage_property_ids _contacts_person_usage = {
469         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_USAGE,
470         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
471         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
472         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
473         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
474         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
475         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
476         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
477         .message_alert          = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
478         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
479         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
480         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
481         .usage_type                             = CTSVC_PROPERTY_PERSON_USAGE_TYPE,
482         .times_used                             = CTSVC_PROPERTY_PERSON_TIMES_USED
483 };
484
485 API const _contacts_person_grouprel_property_ids _contacts_person_grouprel = {
486         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP,
487         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
488         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
489         .display_name_index             = CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,
490         .display_contact_id             = CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,
491         .ringtone_path                  = CTSVC_PROPERTY_PERSON_RINGTONE,
492         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
493         .vibration                              = CTSVC_PROPERTY_PERSON_VIBRATION,
494         .message_alert                  = CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,
495         .status                                 = CTSVC_PROPERTY_PERSON_STATUS,
496         .is_favorite                    = CTSVC_PROPERTY_PERSON_IS_FAVORITE,
497         .has_phonenumber                = CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,
498         .has_email                              = CTSVC_PROPERTY_PERSON_HAS_EMAIL,
499         .link_count                             = CTSVC_PROPERTY_PERSON_LINK_COUNT,
500         .addressbook_ids                = CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,
501         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
502         .group_id               = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
503         .address_book_name              = CTSVC_PROPERTY_ADDRESSBOOK_NAME,
504         .address_book_mode              = CTSVC_PROPERTY_ADDRESSBOOK_MODE,
505         .contact_id                             = CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID
506 };
507
508 API const _contacts_person_phone_log_property_ids _contacts_person_phone_log = {
509         ._uri                   = CTSVC_VIEW_URI_READ_ONLY_PERSON_PHONELOG,
510         .person_id                              = CTSVC_PROPERTY_PERSON_ID,
511         .display_name                   = CTSVC_PROPERTY_PERSON_DISPLAY_NAME,
512         .image_thumbnail_path   = CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,
513         .log_id = CTSVC_PROPERTY_PHONELOG_ID,
514         .address                = CTSVC_PROPERTY_PHONELOG_ADDRESS,
515         .address_type   = CTSVC_PROPERTY_DATA_DATA1,
516         .log_time               = CTSVC_PROPERTY_PHONELOG_LOG_TIME,
517         .log_type               = CTSVC_PROPERTY_PHONELOG_LOG_TYPE,
518         .extra_data1    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,
519         .extra_data2    = CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,
520 };
521
522 API const _contacts_contact_number_property_ids _contacts_contact_number = {
523         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_NUMBER,
524         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
525         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
526         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
527         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
528         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
529         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
530         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
531         .number_id                      = CTSVC_PROPERTY_NUMBER_ID,
532         .type                           = CTSVC_PROPERTY_NUMBER_TYPE,
533         .label                          = CTSVC_PROPERTY_NUMBER_LABEL,
534         .is_default                     = CTSVC_PROPERTY_NUMBER_IS_DEFAULT,
535         .number                         = CTSVC_PROPERTY_NUMBER_NUMBER,
536         .number_filter          = CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,
537 };
538
539 API const _contacts_contact_email_property_ids _contacts_contact_email = {
540         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_EMAIL,
541         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
542         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
543         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
544         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
545         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
546         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
547         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
548         .email_id                       = CTSVC_PROPERTY_EMAIL_ID,
549         .type                           = CTSVC_PROPERTY_EMAIL_TYPE,
550         .label                          = CTSVC_PROPERTY_EMAIL_LABEL,
551         .is_default                     = CTSVC_PROPERTY_EMAIL_IS_DEFAULT,
552         .email                          = CTSVC_PROPERTY_EMAIL_EMAIL
553 };
554
555 API const _contacts_contact_grouprel_property_ids _contacts_contact_grouprel = {
556         ._uri                                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_GROUP,
557         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
558         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
559         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
560         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
561         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
562         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
563         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
564         .group_id               = CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,
565         .group_name             = CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME
566 };
567
568 API const _contacts_contact_activity_property_ids _contacts_contact_activity = {
569         ._uri                   = CTSVC_VIEW_URI_READ_ONLY_CONTACT_ACTIVITY,
570         .contact_id                             = CTSVC_PROPERTY_CONTACT_ID,
571         .display_name                   = CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,
572         .display_source_type    = CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,
573         .address_book_id                = CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,
574         .person_id                              = CTSVC_PROPERTY_CONTACT_PERSON_ID,
575         .ringtone_path                  = CTSVC_PROPERTY_CONTACT_RINGTONE,
576         .image_thumbnail_path   = CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,
577         .activity_id    = CTSVC_PROPERTY_ACTIVITY_ID,
578         .source_name    = CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,
579         .status                 = CTSVC_PROPERTY_ACTIVITY_STATUS,
580         .timestamp              = CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,
581         .service_operation      = CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION,
582         .uri                            = CTSVC_PROPERTY_ACTIVITY_URI,
583         .account_id             = CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,
584 };
585
586 API const _contacts_phone_log_number_property_ids _contacts_phone_log_number = {
587         ._uri   = CTSVC_VIEW_URI_READ_ONLY_PHONELOG_NUMBER,
588         .number = CTSVC_PROPERTY_PHONELOG_ADDRESS,
589 };
590
591 API const _contacts_phone_log_stat_property_ids _contacts_phone_log_stat = {
592         ._uri           = CTSVC_VIEW_URI_READ_ONLY_PHONELOG_STAT,
593         .log_count      = CTSVC_PROPERTY_PHONELOG_STAT_LOG_COUNT,
594         .log_type       = CTSVC_PROPERTY_PHONELOG_STAT_LOG_TYPE,
595 };
596
597 const property_info_s __property_addressbook[] = {
598         {CTSVC_PROPERTY_ADDRESSBOOK_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
599         {CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID, CTSVC_SEARCH_PROPERTY_ALL,      "account_id"},
600         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
601         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,               CTSVC_SEARCH_PROPERTY_ALL,      "mode"},
602 };
603
604 const property_info_s __property_snd[] = {
605         {CTSVC_PROPERTY_SDN_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "id"},
606         {CTSVC_PROPERTY_SDN_NAME,               CTSVC_SEARCH_PROPERTY_ALL,      "name"},
607         {CTSVC_PROPERTY_SDN_NUMBER,     CTSVC_SEARCH_PROPERTY_ALL,      "number"},
608 };
609
610 const property_info_s __property_group[] = {
611         {CTSVC_PROPERTY_GROUP_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
612         {CTSVC_PROPERTY_GROUP_ADDRESSBOOK_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
613         {CTSVC_PROPERTY_GROUP_NAME,                     CTSVC_SEARCH_PROPERTY_ALL,      "group_name"},
614         {CTSVC_PROPERTY_GROUP_RINGTONE,         CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
615         {CTSVC_PROPERTY_GROUP_IMAGE,                    CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
616         {CTSVC_PROPERTY_GROUP_VIBRATION,                CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
617         {CTSVC_PROPERTY_GROUP_EXTRA_DATA,               CTSVC_SEARCH_PROPERTY_ALL,      "extra_data"},
618         {CTSVC_PROPERTY_GROUP_IS_READ_ONLY,     CTSVC_SEARCH_PROPERTY_ALL,      "is_read_only"},
619         {CTSVC_PROPERTY_GROUP_MESSAGE_ALERT,    CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
620 };
621
622 const property_info_s __property_person[] = {
623         {CTSVC_PROPERTY_PERSON_ID,                                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
624         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,            CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
625         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,      CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
626         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,CTSVC_SEARCH_PROPERTY_ALL,    "name_contact_id"},
627         {CTSVC_PROPERTY_PERSON_RINGTONE,                        CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
628         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL, CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
629         {CTSVC_PROPERTY_PERSON_VIBRATION,               CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
630         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,   CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
631         {CTSVC_PROPERTY_PERSON_STATUS,                  CTSVC_SEARCH_PROPERTY_ALL,      "status"},
632         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,             CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
633         {CTSVC_PROPERTY_PERSON_FAVORITE_PRIORITY,       CTSVC_SEARCH_PROPERTY_FILTER,   "favorite_prio"},
634         {CTSVC_PROPERTY_PERSON_LINK_COUNT,              CTSVC_SEARCH_PROPERTY_ALL,      "link_count"},
635         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS, CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
636         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER, CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
637         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
638 };
639
640 const property_info_s __property_simple_contact[] = {
641         {CTSVC_PROPERTY_CONTACT_ID,                             CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
642         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,   CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
643         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID, CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
644         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID, CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
645         {CTSVC_PROPERTY_CONTACT_RINGTONE,               CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
646         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
647         {CTSVC_PROPERTY_CONTACT_IS_FAVORITE,            CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
648         {CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER, CTSVC_SEARCH_PROPERTY_ALL,     "has_phonenumber"},
649         {CTSVC_PROPERTY_CONTACT_HAS_EMAIL,              CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
650         {CTSVC_PROPERTY_CONTACT_PERSON_ID,              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
651         {CTSVC_PROPERTY_CONTACT_UID,                            CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
652         {CTSVC_PROPERTY_CONTACT_VIBRATION,              CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
653         {CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,          CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
654         {CTSVC_PROPERTY_CONTACT_CHANGED_TIME,   CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
655 };
656
657 const property_info_s __property_name[] = {
658         {CTSVC_PROPERTY_NAME_ID,                                        CTSVC_SEARCH_PROPERTY_ALL,      "id"},
659         {CTSVC_PROPERTY_NAME_CONTACT_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
660         {CTSVC_PROPERTY_NAME_FIRST,                             CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
661         {CTSVC_PROPERTY_NAME_LAST,                                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
662         {CTSVC_PROPERTY_NAME_ADDITION,                  CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
663         {CTSVC_PROPERTY_NAME_PREFIX,                            CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
664         {CTSVC_PROPERTY_NAME_SUFFIX,                            CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
665         {CTSVC_PROPERTY_NAME_PHONETIC_FIRST,    CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
666         {CTSVC_PROPERTY_NAME_PHONETIC_MIDDLE,   CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
667         {CTSVC_PROPERTY_NAME_PHONETIC_LAST,     CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
668 };
669
670 const property_info_s __property_number[] = {
671         {CTSVC_PROPERTY_NUMBER_ID,                              CTSVC_SEARCH_PROPERTY_ALL,      "id"},
672         {CTSVC_PROPERTY_NUMBER_CONTACT_ID,      CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
673         {CTSVC_PROPERTY_NUMBER_TYPE,                    CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
674         {CTSVC_PROPERTY_NUMBER_LABEL,                   CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
675         {CTSVC_PROPERTY_NUMBER_IS_DEFAULT,      CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
676         {CTSVC_PROPERTY_NUMBER_NUMBER,          CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
677 };
678
679 const property_info_s __property_email[] = {
680         {CTSVC_PROPERTY_EMAIL_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
681         {CTSVC_PROPERTY_EMAIL_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
682         {CTSVC_PROPERTY_EMAIL_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
683         {CTSVC_PROPERTY_EMAIL_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
684         {CTSVC_PROPERTY_EMAIL_IS_DEFAULT,       CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
685         {CTSVC_PROPERTY_EMAIL_EMAIL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
686 };
687
688 const property_info_s __property_address[] = {
689         {CTSVC_PROPERTY_ADDRESS_ID,                     CTSVC_SEARCH_PROPERTY_ALL,      "id"},
690         {CTSVC_PROPERTY_ADDRESS_CONTACT_ID,     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
691         {CTSVC_PROPERTY_ADDRESS_TYPE,                   CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
692         {CTSVC_PROPERTY_ADDRESS_LABEL,          CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
693         {CTSVC_PROPERTY_ADDRESS_POSTBOX,                CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
694         {CTSVC_PROPERTY_ADDRESS_POSTAL_CODE,CTSVC_SEARCH_PROPERTY_ALL,  "data4"},
695         {CTSVC_PROPERTY_ADDRESS_REGION,         CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
696         {CTSVC_PROPERTY_ADDRESS_LOCALITY,       CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
697         {CTSVC_PROPERTY_ADDRESS_STREET,         CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
698         {CTSVC_PROPERTY_ADDRESS_COUNTRY,                CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
699         {CTSVC_PROPERTY_ADDRESS_EXTENDED,       CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
700         {CTSVC_PROPERTY_ADDRESS_IS_DEFAULT,     CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
701 };
702
703 const property_info_s __property_url[] = {
704         {CTSVC_PROPERTY_URL_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "id"},
705         {CTSVC_PROPERTY_URL_CONTACT_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
706         {CTSVC_PROPERTY_URL_TYPE,                       CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
707         {CTSVC_PROPERTY_URL_LABEL,                      CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
708         {CTSVC_PROPERTY_URL_URL,                        CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
709 };
710
711 const property_info_s __property_event[] = {
712         {CTSVC_PROPERTY_EVENT_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
713         {CTSVC_PROPERTY_EVENT_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
714         {CTSVC_PROPERTY_EVENT_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
715         {CTSVC_PROPERTY_EVENT_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
716         {CTSVC_PROPERTY_EVENT_DATE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
717         {CTSVC_PROPERTY_EVENT_IS_LUNAR,                 CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
718         {CTSVC_PROPERTY_EVENT_LUNAR_DATE,       CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
719 };
720
721 const property_info_s __property_group_relation[] = {
722         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
723         {CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,      CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
724         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME,CTSVC_SEARCH_PROPERTY_ALL,    "group_name"},
725 };
726
727 const property_info_s __property_relationship[] = {
728         {CTSVC_PROPERTY_RELATIONSHIP_ID,                                CTSVC_SEARCH_PROPERTY_ALL,      "id"},
729         {CTSVC_PROPERTY_RELATIONSHIP_CONTACT_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
730         {CTSVC_PROPERTY_RELATIONSHIP_TYPE,                      CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
731         {CTSVC_PROPERTY_RELATIONSHIP_LABEL,             CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
732         {CTSVC_PROPERTY_RELATIONSHIP_NAME,                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
733 };
734
735 const property_info_s __property_image[] = {
736         {CTSVC_PROPERTY_IMAGE_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "id"},
737         {CTSVC_PROPERTY_IMAGE_CONTACT_ID,       CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
738         {CTSVC_PROPERTY_IMAGE_TYPE,                     CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
739         {CTSVC_PROPERTY_IMAGE_LABEL,                    CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
740         {CTSVC_PROPERTY_IMAGE_PATH,                     CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
741         {CTSVC_PROPERTY_IMAGE_IS_DEFAULT,       CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
742 };
743
744 const property_info_s __property_company[] = {
745         {CTSVC_PROPERTY_COMPANY_ID,                             CTSVC_SEARCH_PROPERTY_ALL,      "id"},
746         {CTSVC_PROPERTY_COMPANY_CONTACT_ID,     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
747         {CTSVC_PROPERTY_COMPANY_TYPE,                   CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
748         {CTSVC_PROPERTY_COMPANY_LABEL,                  CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
749         {CTSVC_PROPERTY_COMPANY_NAME,                           CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
750         {CTSVC_PROPERTY_COMPANY_DEPARTMENT,     CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
751         {CTSVC_PROPERTY_COMPANY_JOB_TITLE,              CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
752         {CTSVC_PROPERTY_COMPANY_ROLE,                   CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
753         {CTSVC_PROPERTY_COMPANY_ASSISTANT_NAME, CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
754         {CTSVC_PROPERTY_COMPANY_LOGO,                           CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
755         {CTSVC_PROPERTY_COMPANY_LOCATION,               CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
756         {CTSVC_PROPERTY_COMPANY_DESCRIPTION,    CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
757         {CTSVC_PROPERTY_COMPANY_PHONETIC_NAME,  CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
758 };
759
760 const property_info_s __property_nickname[] = {
761         {CTSVC_PROPERTY_NICKNAME_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id",},
762         {CTSVC_PROPERTY_NICKNAME_CONTACT_ID,    CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
763         {CTSVC_PROPERTY_NICKNAME_NAME,                  CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
764 };
765
766 const property_info_s __property_messenger[] = {
767         {CTSVC_PROPERTY_MESSENGER_ID,                           CTSVC_SEARCH_PROPERTY_ALL,      "id"},
768         {CTSVC_PROPERTY_MESSENGER_CONTACT_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
769         {CTSVC_PROPERTY_MESSENGER_TYPE,                         CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
770         {CTSVC_PROPERTY_MESSENGER_LABEL,                        CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
771         {CTSVC_PROPERTY_MESSENGER_IM_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
772 };
773
774 const property_info_s __property_note[] = {
775         {CTSVC_PROPERTY_NOTE_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "id"},
776         {CTSVC_PROPERTY_NOTE_CONTACT_ID,        CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
777         {CTSVC_PROPERTY_NOTE_NOTE,                      CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
778 };
779
780 const property_info_s __property_profile[] = {
781         {CTSVC_PROPERTY_PROFILE_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "id"},
782         {CTSVC_PROPERTY_PROFILE_CONTACT_ID,                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
783         {CTSVC_PROPERTY_PROFILE_UID,                                    CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
784         {CTSVC_PROPERTY_PROFILE_TEXT,                                   CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
785         {CTSVC_PROPERTY_PROFILE_ORDER,                          CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
786         {CTSVC_PROPERTY_PROFILE_SERVICE_OPERATION,      CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
787         {CTSVC_PROPERTY_PROFILE_MIME,                           CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
788         {CTSVC_PROPERTY_PROFILE_APP_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
789         {CTSVC_PROPERTY_PROFILE_URI,                                    CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
790         {CTSVC_PROPERTY_PROFILE_CATEGORY,                       CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
791         {CTSVC_PROPERTY_PROFILE_EXTRA_DATA,             CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
792 };
793
794 const property_info_s __property_activity_photo[] = {
795         {CTSVC_PROPERTY_ACTIVITY_PHOTO_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "id"},
796         {CTSVC_PROPERTY_ACTIVITY_PHOTO_ACTIVITY_ID,     CTSVC_SEARCH_PROPERTY_ALL,      "activity_id"},
797         {CTSVC_PROPERTY_ACTIVITY_PHOTO_URL,                     CTSVC_SEARCH_PROPERTY_ALL,      "photo_url"},
798         {CTSVC_PROPERTY_ACTIVITY_PHOTO_SORT_INDEX,      CTSVC_SEARCH_PROPERTY_ALL,      "sort_index"},
799 };
800
801 const property_info_s __property_activity[] = {
802         {CTSVC_PROPERTY_ACTIVITY_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id"},
803         {CTSVC_PROPERTY_ACTIVITY_CONTACT_ID,            CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
804         {CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,   CTSVC_SEARCH_PROPERTY_ALL,      "source_name"},
805         {CTSVC_PROPERTY_ACTIVITY_STATUS,                        CTSVC_SEARCH_PROPERTY_ALL,      "status"},
806         {CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,             CTSVC_SEARCH_PROPERTY_ALL,      "timestamp"},
807         {CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION, CTSVC_SEARCH_PROPERTY_ALL,  "service_operation"},
808         {CTSVC_PROPERTY_ACTIVITY_URI,                           CTSVC_SEARCH_PROPERTY_ALL,      "uri"},
809         {CTSVC_PROPERTY_ACTIVITY_ACTIVITY_PHOTO,CTSVC_SEARCH_PROPERTY_NONE,     (void*)__property_activity_photo},
810 };
811
812 const property_info_s __property_extension[] = {
813         {CTSVC_PROPERTY_EXTENSION_ID,                           CTSVC_SEARCH_PROPERTY_ALL,      "id"},
814         {CTSVC_PROPERTY_EXTENSION_CONTACT_ID,   CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
815         {CTSVC_PROPERTY_EXTENSION_DATA1,                CTSVC_SEARCH_PROPERTY_ALL,      "data1"},
816         {CTSVC_PROPERTY_EXTENSION_DATA2,                CTSVC_SEARCH_PROPERTY_ALL,      "data2"},
817         {CTSVC_PROPERTY_EXTENSION_DATA3,                CTSVC_SEARCH_PROPERTY_ALL,      "data3"},
818         {CTSVC_PROPERTY_EXTENSION_DATA4,                CTSVC_SEARCH_PROPERTY_ALL,      "data4"},
819         {CTSVC_PROPERTY_EXTENSION_DATA5,                CTSVC_SEARCH_PROPERTY_ALL,      "data5"},
820         {CTSVC_PROPERTY_EXTENSION_DATA6,                CTSVC_SEARCH_PROPERTY_ALL,      "data6"},
821         {CTSVC_PROPERTY_EXTENSION_DATA7,                CTSVC_SEARCH_PROPERTY_ALL,      "data7"},
822         {CTSVC_PROPERTY_EXTENSION_DATA8,                CTSVC_SEARCH_PROPERTY_ALL,      "data8"},
823         {CTSVC_PROPERTY_EXTENSION_DATA9,                CTSVC_SEARCH_PROPERTY_ALL,      "data9"},
824         {CTSVC_PROPERTY_EXTENSION_DATA10,               CTSVC_SEARCH_PROPERTY_ALL,      "data10"},
825         {CTSVC_PROPERTY_EXTENSION_DATA11,               CTSVC_SEARCH_PROPERTY_ALL,      "data11"},
826         {CTSVC_PROPERTY_EXTENSION_DATA12,               CTSVC_SEARCH_PROPERTY_ALL,      "data12"},
827 };
828
829 const property_info_s __property_contact[] = {
830         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
831         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},  //dispaly_name, reverse_display_name
832         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID, CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
833         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
834         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_ALL,      "ringtone_path"},
835         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,        CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
836         {CTSVC_PROPERTY_CONTACT_IS_FAVORITE,                    CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
837         {CTSVC_PROPERTY_CONTACT_HAS_PHONENUMBER,        CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
838         {CTSVC_PROPERTY_CONTACT_HAS_EMAIL,                      CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
839         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
840         {CTSVC_PROPERTY_CONTACT_UID,                                    CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
841         {CTSVC_PROPERTY_CONTACT_VIBRATION,                      CTSVC_SEARCH_PROPERTY_ALL,      "vibration"},
842         {CTSVC_PROPERTY_CONTACT_MESSAGE_ALERT,          CTSVC_SEARCH_PROPERTY_ALL,      "message_alert"},
843         {CTSVC_PROPERTY_CONTACT_CHANGED_TIME,           CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
844         {CTSVC_PROPERTY_CONTACT_LINK_MODE,                      CTSVC_SEARCH_PROPERTY_ALL,      "link_mode"},
845         {CTSVC_PROPERTY_CONTACT_NAME,                                   CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_name},
846         {CTSVC_PROPERTY_CONTACT_COMPANY,                                CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_company},
847         {CTSVC_PROPERTY_CONTACT_NOTE,                                   CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_note},
848         {CTSVC_PROPERTY_CONTACT_NUMBER,                         CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_number},
849         {CTSVC_PROPERTY_CONTACT_EMAIL,                          CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_email},
850         {CTSVC_PROPERTY_CONTACT_EVENT,                          CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_event},
851         {CTSVC_PROPERTY_CONTACT_MESSENGER,                      CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_messenger},
852         {CTSVC_PROPERTY_CONTACT_ADDRESS,                                CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_address},
853         {CTSVC_PROPERTY_CONTACT_URL,                                    CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_url},
854         {CTSVC_PROPERTY_CONTACT_NICKNAME,                       CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_nickname},
855         {CTSVC_PROPERTY_CONTACT_PROFILE,                                CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_profile},
856         {CTSVC_PROPERTY_CONTACT_RELATIONSHIP,           CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_relationship},
857         {CTSVC_PROPERTY_CONTACT_IMAGE,                          CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_image},
858         {CTSVC_PROPERTY_CONTACT_GROUP_RELATION,         CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_group_relation},
859         {CTSVC_PROPERTY_CONTACT_EXTENSION,                      CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_extension},
860 };
861
862 const property_info_s __property_my_profile[] = {
863         {CTSVC_PROPERTY_MY_PROFILE_ID,                                  CTSVC_SEARCH_PROPERTY_ALL,      "my_profile_id"},
864         {CTSVC_PROPERTY_MY_PROFILE_DISPLAY_NAME,                CTSVC_SEARCH_PROPERTY_ALL,      NULL},  //dispaly_name, reverse_display_name
865         {CTSVC_PROPERTY_MY_PROFILE_ADDRESSBOOK_ID,              CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
866         {CTSVC_PROPERTY_MY_PROFILE_IMAGE_THUMBNAIL,     CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
867         {CTSVC_PROPERTY_MY_PROFILE_UID,                                 CTSVC_SEARCH_PROPERTY_ALL,      "uid"},
868         {CTSVC_PROPERTY_MY_PROFILE_CHANGED_TIME,                CTSVC_SEARCH_PROPERTY_ALL,      "changed_time"},
869         {CTSVC_PROPERTY_MY_PROFILE_NAME,                                        CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_name},
870         {CTSVC_PROPERTY_MY_PROFILE_COMPANY,                             CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_company},
871         {CTSVC_PROPERTY_MY_PROFILE_NOTE,                                        CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_note},
872         {CTSVC_PROPERTY_MY_PROFILE_NUMBER,                              CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_number},
873         {CTSVC_PROPERTY_MY_PROFILE_EMAIL,                               CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_email},
874         {CTSVC_PROPERTY_MY_PROFILE_EVENT,                               CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_event},
875         {CTSVC_PROPERTY_MY_PROFILE_MESSENGER,                   CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_messenger},
876         {CTSVC_PROPERTY_MY_PROFILE_ADDRESS,                             CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_address},
877         {CTSVC_PROPERTY_MY_PROFILE_URL,                                 CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_url},
878         {CTSVC_PROPERTY_MY_PROFILE_NICKNAME,                            CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_nickname},
879         {CTSVC_PROPERTY_MY_PROFILE_PROFILE,                             CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_profile},
880         {CTSVC_PROPERTY_MY_PROFILE_RELATIONSHIP,                CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_relationship},
881         {CTSVC_PROPERTY_MY_PROFILE_IMAGE,                               CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_image},
882         {CTSVC_PROPERTY_MY_PROFILE_EXTENSION,                   CTSVC_SEARCH_PROPERTY_NONE,(void*)__property_extension},
883 };
884
885 const property_info_s __property_speeddial[] = {
886         {CTSVC_PROPERTY_SPEEDDIAL_DIAL_NUMBER,          CTSVC_SEARCH_PROPERTY_ALL,      "speed_number"},
887         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_ID,                    CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
888         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER,                       CTSVC_SEARCH_PROPERTY_ALL,      "number"},
889         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_LABEL, CTSVC_SEARCH_PROPERTY_ALL,      "label"},
890         {CTSVC_PROPERTY_SPEEDDIAL_NUMBER_TYPE,          CTSVC_SEARCH_PROPERTY_ALL,      "type"},
891         {CTSVC_PROPERTY_SPEEDDIAL_PERSON_ID,                    CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
892         {CTSVC_PROPERTY_SPEEDDIAL_DISPLAY_NAME, CTSVC_SEARCH_PROPERTY_ALL,      NULL},          // display_name or reverse_display_name
893         {CTSVC_PROPERTY_SPEEDDIAL_IMAGE_THUMBNAIL,      CTSVC_SEARCH_PROPERTY_ALL,      "image_thumbnail_path"},
894 };
895
896 const property_info_s __property_phonelog[] = {
897         {CTSVC_PROPERTY_PHONELOG_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "id"},
898         {CTSVC_PROPERTY_PHONELOG_PERSON_ID,             CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
899         {CTSVC_PROPERTY_PHONELOG_ADDRESS,               CTSVC_SEARCH_PROPERTY_ALL,      "number"},
900         {CTSVC_PROPERTY_PHONELOG_LOG_TIME,              CTSVC_SEARCH_PROPERTY_ALL,      "log_time"},
901         {CTSVC_PROPERTY_PHONELOG_LOG_TYPE,              CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
902         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,   CTSVC_SEARCH_PROPERTY_ALL,      "data1"},               // duration
903         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,   CTSVC_SEARCH_PROPERTY_ALL,      "data2"},               // short message, email subject
904 };
905
906 #if 0
907 const property_info_s __property_updated_info[] = {
908         {CTSVC_PROPERTY_UPDATE_INFO_ID,                                 CTSVC_SEARCH_PROPERTY_ALL,      "id"},
909         {CTSVC_PROPERTY_UPDATE_INFO_ADDRESSBOOK_ID, CTSVC_SEARCH_PROPERTY_ALL,  "addressbook_id"},
910         {CTSVC_PROPERTY_UPDATE_INFO_TYPE,                       CTSVC_SEARCH_PROPERTY_ALL,      "type"},
911         {CTSVC_PROPERTY_UPDATE_INFO_VERSION,            CTSVC_SEARCH_PROPERTY_ALL,      "version"},
912         {CTSVC_PROPERTY_UPDATE_INFO_IMAGE_CHANGED,      CTSVC_SEARCH_PROPERTY_ALL,      "image_changed"},
913         {CTSVC_PROPERTY_UPDATE_INFO_LAST_CHANGED_TYPE,  CTSVC_SEARCH_PROPERTY_ALL,      "is_deleted"},
914 };
915
916 const property_info_s __property_grouprel_updated_info[] = {
917         {CTSVC_PROPERTY_GROUP_ID,                               CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
918         {CTSVC_PROPERTY_CONTACT_ID,                     CTSVC_SEARCH_PROPERTY_ALL,      "id"},
919         {CTSVC_PROPERTY_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
920         {CTSVC_PROPERTY_UPDATE_INFO_TYPE,       CTSVC_SEARCH_PROPERTY_ALL,      "type"},
921         {CTSVC_PROPERTY_UPDATE_INFO_VERSION,    CTSVC_SEARCH_PROPERTY_ALL,      "version"},
922 };
923 #endif
924
925 // search properties ///////////////////////////////////////////////////////////////////////////////////////////////////
926 const property_info_s __property_person_contact[] = {           // _contacts_person_contact
927         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
928         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
929         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
930         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
931         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
932         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
933         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
934         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
935         {CTSVC_PROPERTY_PERSON_STATUS,                          CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
936         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
937         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_ALL,      "link_count"},
938         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
939         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
940         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
941         // contact
942         {CTSVC_PROPERTY_CONTACT_ID,                                             CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
943         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
944         // addressbook
945         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
946         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
947 };
948
949 const property_info_s __property_person_number[] = {            // _contacts_person_number
950         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
951         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
952         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
953         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
954         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
955         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
956         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
957         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
958         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
959         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
960         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
961         // number
962         {CTSVC_PROPERTY_NUMBER_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
963         {CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,                CTSVC_SEARCH_PROPERTY_ALL,      "is_primary_default"},
964         {CTSVC_PROPERTY_NUMBER_TYPE,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
965         {CTSVC_PROPERTY_NUMBER_LABEL,                                   CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
966         {CTSVC_PROPERTY_NUMBER_NUMBER,                                  CTSVC_SEARCH_PROPERTY_ALL,      "number"},
967         {CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,                   CTSVC_SEARCH_PROPERTY_FILTER,   "normalized_number"},
968 };
969
970 const property_info_s __property_person_email[] = {     // _contacts_person_email
971         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
972         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
973         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
974         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
975         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
976         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
977         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
978         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
979         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
980         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
981         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
982         // email
983         {CTSVC_PROPERTY_EMAIL_ID,                                               CTSVC_SEARCH_PROPERTY_ALL,      "email_id"},
984         {CTSVC_PROPERTY_EMAIL_TYPE,                                     CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
985         {CTSVC_PROPERTY_EMAIL_LABEL,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
986         {CTSVC_PROPERTY_DATA_IS_PRIMARY_DEFAULT,                CTSVC_SEARCH_PROPERTY_ALL,      "is_primary_default"},
987         {CTSVC_PROPERTY_EMAIL_EMAIL,                                    CTSVC_SEARCH_PROPERTY_ALL,      "email"},
988 };
989
990 const property_info_s __property_person_grouprel[] = {  // _contacts_person_grouprel
991         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
992         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
993         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
994         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
995         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
996         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
997         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
998         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
999         {CTSVC_PROPERTY_PERSON_STATUS,                                  CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1000         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1001         {CTSVC_PROPERTY_PERSON_LINK_COUNT,                              CTSVC_SEARCH_PROPERTY_ALL,      "link_count"},
1002         {CTSVC_PROPERTY_PERSON_ADDRESSBOOK_IDS,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "addressbook_ids"},
1003         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1004         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1005         // contacts
1006         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,                         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1007         // group relation
1008         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,                        CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
1009         // addressbook
1010         {CTSVC_PROPERTY_ADDRESSBOOK_NAME,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_name"},
1011         {CTSVC_PROPERTY_ADDRESSBOOK_MODE,                               CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_mode"},
1012         {CTSVC_PROPERTY_GROUP_RELATION_CONTACT_ID,                      CTSVC_SEARCH_PROPERTY_PROJECTION,       "contact_id"},
1013 };
1014
1015 const property_info_s __property_person_phonelog[] = {  // _contacts_person_phone_log
1016         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "id"},
1017         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1018         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1019         // phonelog
1020         {CTSVC_PROPERTY_PHONELOG_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "phonelog_id"},
1021         {CTSVC_PROPERTY_PHONELOG_ADDRESS,                       CTSVC_SEARCH_PROPERTY_ALL,      "address"},
1022         {CTSVC_PROPERTY_DATA_DATA1,                                     CTSVC_SEARCH_PROPERTY_PROJECTION,       "address_type"},
1023         {CTSVC_PROPERTY_PHONELOG_LOG_TIME,                      CTSVC_SEARCH_PROPERTY_ALL,      "log_time"},
1024         {CTSVC_PROPERTY_PHONELOG_LOG_TYPE,                      CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
1025         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA1,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "data1"},               // duration
1026         {CTSVC_PROPERTY_PHONELOG_EXTRA_DATA2,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "data2"},               // message_id
1027 };
1028
1029 const property_info_s __property_person_usage[] = {     // _contacts_person_usage
1030         {CTSVC_PROPERTY_PERSON_ID,                                              CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1031         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME,                    CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1032         {CTSVC_PROPERTY_PERSON_DISPLAY_NAME_INDEX,                              CTSVC_SEARCH_PROPERTY_PROJECTION,       NULL},  // "dispaly_name" or "reverse_dispaly_name"
1033         {CTSVC_PROPERTY_PERSON_DISPLAY_CONTACT_ID,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "name_contact_id"},
1034         {CTSVC_PROPERTY_PERSON_RINGTONE,                                CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1035         {CTSVC_PROPERTY_PERSON_IMAGE_THUMBNAIL,         CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1036         {CTSVC_PROPERTY_PERSON_VIBRATION,                               CTSVC_SEARCH_PROPERTY_PROJECTION,       "vibration"},
1037         {CTSVC_PROPERTY_PERSON_MESSAGE_ALERT,           CTSVC_SEARCH_PROPERTY_PROJECTION,       "message_alert"},
1038         {CTSVC_PROPERTY_PERSON_IS_FAVORITE,                     CTSVC_SEARCH_PROPERTY_ALL,      "is_favorite"},
1039         {CTSVC_PROPERTY_PERSON_HAS_PHONENUMBER,                 CTSVC_SEARCH_PROPERTY_ALL,      "has_phonenumber"},
1040         {CTSVC_PROPERTY_PERSON_HAS_EMAIL,                               CTSVC_SEARCH_PROPERTY_ALL,      "has_email"},
1041         // contact_stat
1042         {CTSVC_PROPERTY_PERSON_USAGE_TYPE,                              CTSVC_SEARCH_PROPERTY_ALL,      "usage_type"},
1043         {CTSVC_PROPERTY_PERSON_TIMES_USED,                              CTSVC_SEARCH_PROPERTY_ALL,      "times_used"},
1044 };
1045
1046 const property_info_s __property_contact_number[] = {           // _contacts_contact_number
1047         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1048         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1049         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1050         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1051         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1052         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1053         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,        CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1054         // number
1055         {CTSVC_PROPERTY_NUMBER_ID,                                      CTSVC_SEARCH_PROPERTY_ALL,      "number_id"},
1056         {CTSVC_PROPERTY_NUMBER_TYPE,                            CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1057         {CTSVC_PROPERTY_NUMBER_LABEL,                           CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1058         {CTSVC_PROPERTY_NUMBER_IS_DEFAULT,                      CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
1059         {CTSVC_PROPERTY_NUMBER_NUMBER,                          CTSVC_SEARCH_PROPERTY_ALL,      "number"},
1060         {CTSVC_PROPERTY_NUMBER_NUMBER_FILTER,           CTSVC_SEARCH_PROPERTY_FILTER,   "normalized_number"},
1061 };
1062
1063 const property_info_s __property_contact_email[] = {            // _contacts_contact_email
1064         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1065         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1066         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_ALL,      "display_name_source"},
1067         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1068         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1069         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1070         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1071         // email
1072         {CTSVC_PROPERTY_EMAIL_ID,                                               CTSVC_SEARCH_PROPERTY_ALL,      "email_id"},
1073         {CTSVC_PROPERTY_EMAIL_TYPE,                                             CTSVC_SEARCH_PROPERTY_PROJECTION,       "type"},
1074         {CTSVC_PROPERTY_EMAIL_LABEL,                                    CTSVC_SEARCH_PROPERTY_PROJECTION,       "label"},
1075         {CTSVC_PROPERTY_EMAIL_IS_DEFAULT,                               CTSVC_SEARCH_PROPERTY_ALL,      "is_default"},
1076         {CTSVC_PROPERTY_EMAIL_EMAIL,                                    CTSVC_SEARCH_PROPERTY_ALL,      "email"},
1077 };
1078
1079 const property_info_s __property_contact_grouprel[] = {         // _contacts_contact_grouprel
1080         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1081         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1082         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1083         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1084         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1085         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1086         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1087         // group relation
1088         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_ID,                CTSVC_SEARCH_PROPERTY_ALL,      "group_id"},
1089         {CTSVC_PROPERTY_GROUP_RELATION_GROUP_NAME,              CTSVC_SEARCH_PROPERTY_PROJECTION,       "group_name"},
1090 };
1091
1092 const property_info_s __property_contact_activity[] = {         // _contacts_contact_activity
1093         {CTSVC_PROPERTY_CONTACT_ID,                                     CTSVC_SEARCH_PROPERTY_ALL,      "contact_id"},
1094         {CTSVC_PROPERTY_CONTACT_DISPLAY_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      NULL},  // "dispaly_name" or "reverse_dispaly_name"
1095         {CTSVC_PROPERTY_CONTACT_DISPLAY_SOURCE_DATA_ID,                 CTSVC_SEARCH_PROPERTY_PROJECTION,       "display_name_source"},
1096         {CTSVC_PROPERTY_CONTACT_ADDRESSBOOK_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "addressbook_id"},
1097         {CTSVC_PROPERTY_CONTACT_PERSON_ID,                      CTSVC_SEARCH_PROPERTY_ALL,      "person_id"},
1098         {CTSVC_PROPERTY_CONTACT_RINGTONE,                       CTSVC_SEARCH_PROPERTY_PROJECTION,       "ringtone_path"},
1099         {CTSVC_PROPERTY_CONTACT_IMAGE_THUMBNAIL,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "image_thumbnail_path"},
1100         {CTSVC_PROPERTY_ACTIVITY_ID,                            CTSVC_SEARCH_PROPERTY_ALL,      "activity_id"},
1101         {CTSVC_PROPERTY_ACTIVITY_SOURCE_NAME,           CTSVC_SEARCH_PROPERTY_ALL,      "source_name"},
1102         {CTSVC_PROPERTY_ACTIVITY_STATUS,                        CTSVC_SEARCH_PROPERTY_PROJECTION,       "status"},
1103         {CTSVC_PROPERTY_ACTIVITY_TIMESTAMP,             CTSVC_SEARCH_PROPERTY_ALL,      "timestamp"},
1104         {CTSVC_PROPERTY_ACTIVITY_SERVICE_OPERATION, CTSVC_SEARCH_PROPERTY_ALL,  "service_operation"},
1105         {CTSVC_PROPERTY_ACTIVITY_URI,                                   CTSVC_SEARCH_PROPERTY_ALL,      "uri"},
1106         {CTSVC_PROPERTY_ADDRESSBOOK_ACCOUNT_ID,         CTSVC_SEARCH_PROPERTY_ALL,      "account_id"},
1107 };
1108
1109 const property_info_s __property_phonelog_number[] = {          //_contacts_phone_log_number
1110         {CTSVC_PROPERTY_PHONELOG_ADDRESS,                       CTSVC_SEARCH_PROPERTY_ALL,      "number"},
1111 };
1112
1113 const property_info_s __property_phonelog_stat[] = {            //_contacts_phone_log_stat
1114         {CTSVC_PROPERTY_PHONELOG_STAT_LOG_COUNT,                CTSVC_SEARCH_PROPERTY_PROJECTION,       "log_count"},
1115         {CTSVC_PROPERTY_PHONELOG_STAT_LOG_TYPE,                 CTSVC_SEARCH_PROPERTY_ALL,      "log_type"},
1116 };
1117
1118 typedef struct {
1119         char *view_uri;
1120         ctsvc_record_type_e type;
1121         property_info_s *properties;
1122         unsigned int property_count;
1123 }view_uri_info_s;
1124
1125 #define PTR_COUNT(X)    (void*)(X), sizeof(X)/sizeof(property_info_s)
1126
1127 static const view_uri_info_s __tables[] = {
1128         {CTSVC_VIEW_URI_ADDRESSBOOK,    CTSVC_RECORD_ADDRESSBOOK,               PTR_COUNT(__property_addressbook)},
1129         {CTSVC_VIEW_URI_GROUP,                  CTSVC_RECORD_GROUP,                             PTR_COUNT(__property_group)},
1130         {CTSVC_VIEW_URI_PERSON,                 CTSVC_RECORD_PERSON,                    PTR_COUNT(__property_person)},
1131         {CTSVC_VIEW_URI_SIMPLE_CONTACT, CTSVC_RECORD_SIMPLE_CONTACT,    PTR_COUNT(__property_simple_contact)},
1132         {CTSVC_VIEW_URI_CONTACT,                CTSVC_RECORD_CONTACT,                   PTR_COUNT(__property_contact)},
1133         {CTSVC_VIEW_URI_MY_PROFILE,             CTSVC_RECORD_MY_PROFILE,                PTR_COUNT(__property_my_profile)},
1134         {CTSVC_VIEW_URI_ACTIVITY,               CTSVC_RECORD_ACTIVITY,                  PTR_COUNT(__property_activity)},
1135         {CTSVC_VIEW_URI_ACTIVITY_PHOTO, CTSVC_RECORD_ACTIVITY_PHOTO,    PTR_COUNT(__property_activity_photo)},
1136         {CTSVC_VIEW_URI_PHONELOG,               CTSVC_RECORD_PHONELOG,                  PTR_COUNT(__property_phonelog)},
1137         {CTSVC_VIEW_URI_SPEEDDIAL,              CTSVC_RECORD_SPEEDDIAL,                 PTR_COUNT(__property_speeddial)},
1138         {CTSVC_VIEW_URI_SDN,                    CTSVC_RECORD_SDN,                               PTR_COUNT(__property_snd)},
1139
1140         {CTSVC_VIEW_URI_NAME,                   CTSVC_RECORD_NAME,                              PTR_COUNT(__property_name)},
1141         {CTSVC_VIEW_URI_COMPANY,                CTSVC_RECORD_COMPANY,                   PTR_COUNT(__property_company)},
1142         {CTSVC_VIEW_URI_NUMBER,         CTSVC_RECORD_NUMBER,                    PTR_COUNT(__property_number)},
1143         {CTSVC_VIEW_URI_EMAIL,                  CTSVC_RECORD_EMAIL,                             PTR_COUNT(__property_email)},
1144         {CTSVC_VIEW_URI_URL,                    CTSVC_RECORD_URL,                               PTR_COUNT(__property_url)},
1145         {CTSVC_VIEW_URI_ADDRESS,                CTSVC_RECORD_ADDRESS,                   PTR_COUNT(__property_address)},
1146         {CTSVC_VIEW_URI_PROFILE,                CTSVC_RECORD_PROFILE,                   PTR_COUNT(__property_profile)},
1147         {CTSVC_VIEW_URI_RELATIONSHIP,   CTSVC_RECORD_RELATIONSHIP,              PTR_COUNT(__property_relationship)},
1148         {CTSVC_VIEW_URI_IMAGE,                  CTSVC_RECORD_IMAGE,                             PTR_COUNT(__property_image)},
1149         {CTSVC_VIEW_URI_NOTE,                   CTSVC_RECORD_NOTE,                              PTR_COUNT(__property_note)},
1150         {CTSVC_VIEW_URI_NICKNAME,               CTSVC_RECORD_NICKNAME,                  PTR_COUNT(__property_nickname)},
1151         {CTSVC_VIEW_URI_EVENT,                  CTSVC_RECORD_EVENT,                             PTR_COUNT(__property_event)},
1152         {CTSVC_VIEW_URI_MESSENGER,              CTSVC_RECORD_MESSENGER,                 PTR_COUNT(__property_messenger)},
1153         {CTSVC_VIEW_URI_GROUP_RELATION, CTSVC_RECORD_GROUP_RELATION,    PTR_COUNT(__property_group_relation)},
1154         {CTSVC_VIEW_URI_EXTENSION,                      CTSVC_RECORD_EXTENSION,                 PTR_COUNT(__property_extension)},
1155
1156         {CTSVC_VIEW_URI_GROUPS_UPDATED_INFO,  CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1157         {CTSVC_VIEW_URI_GROUPS_MEMBER_UPDATED_INFO,  CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1158         {CTSVC_VIEW_URI_CONTACTS_UPDATED_INFO, CTSVC_RECORD_UPDATED_INFO, NULL, 0},
1159         {CTSVC_VIEW_URI_MY_PROFILE_UPDATED_INFO, CTSVC_RECORD_UPDATED_INFO,  NULL, 0},
1160         {CTSVC_VIEW_URI_GROUPRELS_UPDATED_INFO, CTSVC_RECORD_RESULT, NULL, 0},
1161
1162         {CTSVC_VIEW_URI_READ_ONLY_PERSON_CONTACT,               CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_contact)},
1163         {CTSVC_VIEW_URI_READ_ONLY_PERSON_NUMBER,                CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_number)},
1164         {CTSVC_VIEW_URI_READ_ONLY_PERSON_EMAIL,         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_email)},
1165         {CTSVC_VIEW_URI_READ_ONLY_PERSON_GROUP,         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_grouprel)},
1166         {CTSVC_VIEW_URI_READ_ONLY_PERSON_PHONELOG,                              CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_phonelog)},
1167         {CTSVC_VIEW_URI_READ_ONLY_PERSON_USAGE,                         CTSVC_RECORD_RESULT, PTR_COUNT(__property_person_usage)},
1168         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_NUMBER,                               CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_number)},
1169         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_EMAIL,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_email)},
1170         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_GROUP,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_grouprel)},
1171         {CTSVC_VIEW_URI_READ_ONLY_CONTACT_ACTIVITY,                     CTSVC_RECORD_RESULT, PTR_COUNT(__property_contact_activity)},
1172         {CTSVC_VIEW_URI_READ_ONLY_PHONELOG_NUMBER,                              CTSVC_RECORD_RESULT, PTR_COUNT(__property_phonelog_number)},
1173         {CTSVC_VIEW_URI_READ_ONLY_PHONELOG_STAT,                                CTSVC_RECORD_RESULT, PTR_COUNT(__property_phonelog_stat)},
1174 };
1175
1176 static GHashTable *__ctsvc_view_uri_hash = NULL;
1177
1178 void ctsvc_view_uri_init()
1179 {
1180         int i;
1181         int count;
1182         if (__ctsvc_view_uri_hash)
1183                 return;
1184
1185         __ctsvc_view_uri_hash = g_hash_table_new(g_str_hash, g_str_equal);
1186
1187         i = 0;
1188         count = sizeof(__tables)/sizeof(view_uri_info_s);
1189         for (i=0;i<count;i++)
1190                 g_hash_table_insert(__ctsvc_view_uri_hash, __tables[i].view_uri, GINT_TO_POINTER(&__tables[i]));
1191 }
1192
1193 void ctsvc_view_uri_deinit()
1194 {
1195 #if 0
1196         if (NULL == __ctsvc_view_uri_hash)
1197                 ASSERT_NOT_REACHED("__ctsvc_view_uri_hash is NULL");
1198
1199         g_hash_table_destroy(__ctsvc_view_uri_hash);
1200         __ctsvc_view_uri_hash = NULL;
1201 #endif
1202 }
1203
1204 ctsvc_record_type_e ctsvc_view_get_record_type(const char* view_uri)
1205 {
1206         view_uri_info_s* view_uri_info = NULL;
1207         ctsvc_record_type_e type = CTSVC_RECORD_INVALID;
1208
1209         if (NULL == __ctsvc_view_uri_hash) {
1210                 ASSERT_NOT_REACHED("__ctsvc_view_uri_hash is NULL");
1211         }
1212
1213         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1214         if (view_uri_info)
1215                 type = view_uri_info->type;
1216
1217         return type;
1218 }
1219
1220 const char* ctsvc_view_get_uri( const char* view_uri )
1221 {
1222         view_uri_info_s* view_uri_info = NULL;
1223
1224         if (NULL == __ctsvc_view_uri_hash) {
1225                 ASSERT_NOT_REACHED("__ctsvc_view_uri_hash is NULL");
1226         }
1227
1228         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1229         if (view_uri_info)
1230                 return view_uri_info->view_uri;
1231
1232         return NULL;
1233 }
1234
1235 const property_info_s* ctsvc_view_get_all_property_infos(const char *view_uri, unsigned int *count)
1236 {
1237         view_uri_info_s* view_uri_info = NULL;
1238
1239         if (NULL == __ctsvc_view_uri_hash) {
1240                 ASSERT_NOT_REACHED("__ctsvc_view_uri_hash is NULL");
1241         }
1242
1243         view_uri_info = g_hash_table_lookup(__ctsvc_view_uri_hash, view_uri);
1244         if (view_uri_info) {
1245                 *count = view_uri_info->property_count;
1246                 return view_uri_info->properties;
1247         }
1248
1249         return NULL;
1250 }
1251