Tizen 2.0 Release
[platform/framework/native/social.git] / inc / FSclTypes.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 //
5 //
6 // Licensed under the Apache License, Version 2.0 (the License);
7 // you may not use this file except in compliance with the License.
8 // You may obtain a copy of the License at
9 //
10 //     http://www.apache.org/licenses/LICENSE-2.0
11 //
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 //
18
19 /**
20  * @file        FSclTypes.h
21  * @brief       This is the header file for the types in the Social namespace.
22  *
23  * This header file contains the declarations of the types in the Social namespace.
24  */
25 #ifndef _FSCL_TYPES_H_
26 #define _FSCL_TYPES_H_
27
28 namespace Tizen { namespace Base
29 {
30 class DateTime;
31 }}
32
33 namespace Tizen { namespace Social
34 {
35
36 /**
37  * A unique ID. This ID is unique within a local storage only. @n
38  * @c RecordId is assigned by the local storage (for example, Addressbook and Calendarbook) when a record is saved to the storage. @n
39  * A newly constructed record instance has @c INVALID_RECORD_ID.
40  *
41  * @since       2.0
42  */
43 typedef int RecordId;
44
45 /**
46  * An invalid record ID. @n
47  * The record has not been properly recorded to Addressbook.
48  *
49  * @since       2.0
50  */
51 const RecordId INVALID_RECORD_ID = -1;
52
53 /**
54  * @typedef     RecurrenceId
55  * Defines the recurrence ID which is used to identify a specific instance of a recurring calendar component (CalEvent). @n
56  * The value type is @c Tizen::Base::DateTime. The property value is the effective value of the start time ("DTSTART" property) of the Recurrence instance.
57  *
58  * @since       2.0
59  */
60 typedef Tizen::Base::DateTime RecurrenceId;
61
62 /**
63  * @if VISPARTNER
64  * The maximum length of a service provider.
65  *
66  * @since       2.0
67  * @visibility  partner
68  * @endif
69  */
70 static const int MAX_SERVICE_PROVIDER_LENGTH = 30;
71
72 /**
73  * @if VISPARTNER
74  * The maximum length of an account.
75  *
76  * @since       2.0
77  * @visibility  partner
78  * @endif
79  */
80 static const int MAX_ACCOUNT_LENGTH = 320;
81
82 /**
83  * @if OSPDEPREC
84  * The maximum length of the name property.
85  *
86  * @brief <i> [Deprecated] </i>
87  * @deprecated  This constant is deprecated.
88  * @since       2.0
89  * @endif
90  */
91 static const int MAX_ATTENDEE_NAME_LENGTH = 100;
92
93 /**
94  * @if OSPDEPREC
95  * The maximum length of the email property.
96  *
97  * @brief <i> [Deprecated] </i>
98  * @deprecated  This constant is deprecated.
99  * @since       2.0
100  * @endif
101  */
102 static const int MAX_ATTENDEE_EMAIL_LENGTH = 320;
103
104 /**
105  * @if OSPDEPREC
106  * The maximum length of the subject field.
107  *
108  * @brief <i> [Deprecated] </i>
109  * @deprecated  This constant is deprecated.
110  * @since       2.0
111  * @endif
112  */
113 static const int MAX_EVENT_SUBJECT_LENGTH = 100;
114
115 /**
116  * @if OSPDEPREC
117  * The maximum length of the description field.
118  *
119  * @brief <i> [Deprecated] </i>
120  * @deprecated  This constant is deprecated.
121  * @since       2.0
122  * @endif
123  */
124 static const int MAX_EVENT_DESCRIPTION_LENGTH = 1000;
125
126 /**
127  * @if OSPDEPREC
128  * The maximum length of the location field.
129  *
130  * @brief <i> [Deprecated] </i>
131  * @deprecated  This constant is deprecated.
132  * @since       2.0
133  * @endif
134  */
135 static const int MAX_EVENT_LOCATION_LENGTH = 100;
136
137 /**
138  * @if OSPDEPREC
139  * The maximum length of the subject field.
140  *
141  * @brief <i> [Deprecated] </i>
142  * @deprecated  This constant is deprecated.
143  * @since       2.0
144  * @endif
145  */
146 static const int MAX_TODO_SUBJECT_LENGTH = 100;
147
148 /**
149  * @if OSPDEPREC
150  * The maximum length of the description field.
151  *
152  * @brief <i> [Deprecated] </i>
153  * @deprecated  This constant is deprecated.
154  * @since       2.0
155  * @endif
156  */
157 static const int MAX_TODO_DESCRIPTION_LENGTH = 1000;
158
159 /**
160  * @if OSPDEPREC
161  * The maximum recurrence interval value.
162  *
163  * @brief <i> [Deprecated] </i>
164  * @deprecated  This constant is deprecated.
165  * @since       2.0
166  * @endif
167  */
168 static const int MAX_RECURRENCE_INTERVAL_VALUE = 255;
169
170 /**
171  * @if OSPDEPREC
172  * The maximum value of the reminder offset (in minutes).
173  *
174  * @brief <i> [Deprecated] </i>
175  * @deprecated  This constant is deprecated.
176  * @since       2.0
177  * @endif
178  */
179 static const int MAX_REMINDER_OFFSET_VALUE = 40320;
180
181 /**
182  * @if OSPDEPREC
183  * The maximum length of the name properties (first, last, nickname, and formatted names).
184  *
185  * @brief <i> [Deprecated] </i>
186  * @deprecated  This constant is deprecated because there is no limitation any more.
187  * @since       2.0
188  * @endif
189  */
190 static const int MAX_CONTACT_NAME_LENGTH = 50;
191
192 /**
193  * @if OSPDEPREC
194  * The maximum length of the job title property.
195  *
196  * @brief <i> [Deprecated] </i>
197  * @deprecated  This constant is deprecated because there is no limitation any more.
198  * @since       2.0
199  * @endif
200  */
201 static const int MAX_CONTACT_JOB_TITLE_LENGTH = 50;
202
203 /**
204  * @if OSPDEPREC
205  * The maximum length of the company property.
206  *
207  * @brief <i> [Deprecated] </i>
208  * @deprecated  This constant is deprecated because there is no limitation any more.
209  * @since       2.0
210  * @endif
211  */
212 static const int MAX_CONTACT_COMPANY_LENGTH = 50;
213
214 /**
215  * @if OSPDEPREC
216  * The maximum length of the note property.
217  *
218  * @brief <i> [Deprecated] </i>
219  * @deprecated  This constant is deprecated because there is no limitation any more.
220  * @since       2.0
221  * @endif
222  */
223 static const int MAX_CONTACT_NOTE_LENGTH = 100;
224
225 /**
226  * @if OSPDEPREC
227  * The maximum length of the category name.
228  *
229  * @brief <i> [Deprecated] </i>
230  * @deprecated  This constant is deprecated because the maximum length of the category name has been changed.
231  * @since       2.0
232  * @endif
233  */
234 static const int MAX_CATEGORY_NAME_LENGTH = 20;
235
236 /**
237  * @if OSPDEPREC
238  * The minimum length of the query string for searching the contacts by name.
239  *
240  * @brief <i> [Deprecated] </i>
241  * @deprecated This value is deprecated.
242  * @since       2.0
243  *
244  * @see  Addressbook::SearchContactsByNameN()
245  * @endif
246  */
247 static const int MIN_NAME_QUERY_LENGTH = 1;
248
249 /**
250  * @if OSPDEPREC
251  * The minimum length of the query string for searching the contacts by phone number.
252  *
253  * @brief <i> [Deprecated] </i>
254  * @deprecated This value is deprecated.
255  * @since       2.0
256  *
257  * @see  Addressbook::SearchContactsByPhoneNumberN()
258  * @endif
259  */
260 static const int MIN_PHONENUMBER_QUERY_LENGTH = 4;
261
262 /**
263  * @if OSPDEPREC
264  * The minimum length of the query string for searching the contacts by email.
265  *
266  * @brief <i> [Deprecated] </i>
267  * @deprecated This value is deprecated.
268  * @since       2.0
269  *
270  * @see  Addressbook::SearchContactsByEmailN()
271  * @endif
272  */
273 static const int MIN_EMAIL_QUERY_LENGTH = 1;
274
275 /**
276  * @if OSPDEPREC
277  * The maximum length of the email property.
278  *
279  * @brief <i> [Deprecated]  </i>
280  * @deprecated  This constant is deprecated because there is no limitation any more.
281  * @since       2.0
282  * @endif
283  */
284 static const int MAX_EMAIL_LENGTH = 100;
285
286 /**
287  * @enum        ContactPropertyId
288  *
289  * Defines the IDs for accessing the single value type properties of Contact.
290  * @since       2.0
291  */
292 enum ContactPropertyId
293 {
294         CONTACT_PROPERTY_ID_FIRST_NAME = 1,                     /**< The first name property ID (String type) */
295         CONTACT_PROPERTY_ID_LAST_NAME,                          /**< The last name property ID (String type) */
296         CONTACT_PROPERTY_ID_DISPLAY_NAME,                       /**< The formatted name property ID (String type) */
297         CONTACT_PROPERTY_ID_NICK_NAME,                          /**< @if OSPDEPREC The nick name property ID (String type)
298                                                                         @deprecated This enum field is deprecated because there can be multiple nicknames
299                                                                         in a contact. Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_NICKNAMES. @endif */
300         CONTACT_PROPERTY_ID_THUMBNAIL,                          /**< @if OSPDEPREC The thumbnail property ID (Bitmap type)
301                                                                 @deprecated This enumeration field is deprecated because it is not used any longer. @endif */
302         CONTACT_PROPERTY_ID_BIRTHDAY,                           /**< @if OSPDEPREC The birthday property ID (DateTime type)
303                                                                         @deprecated This enum field is deprecated because there can be multiple birthday events.
304                                                                         Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_EVENTS. @endif */
305         CONTACT_PROPERTY_ID_JOB_TITLE,                          /**< @if OSPDEPREC The job title property ID (String type)
306                                                                         @deprecated This enum field is deprecated because there can be multiple organizational information.
307                                                                         Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_ORGANIZATIONS. @endif */
308         CONTACT_PROPERTY_ID_COMPANY,                            /**< @if OSPDEPREC The company property ID (String type)
309                                                                         @deprecated This enum field is deprecated because there can be multiple organizational information.
310                                                                         Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_ORGANIZATIONS.@endif */
311         CONTACT_PROPERTY_ID_NOTE,                               /**< @if OSPDEPREC The note property ID (String type)
312                                                                         @deprecated This enum field is deprecated because there can be multiple notes
313                                                                         in a contact. Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_NOTES.@endif */
314         CONTACT_PROPERTY_ID_ANNIVERSARY,                        /**< @if OSPDEPREC The anniversary property ID (DateTime type)
315                                                                         @deprecated This enum field is deprecated because there can be multiple anniversary events.
316                                                                         Instead of using this, use ContactMultiPropertyId::CONTACT_MPROPERTY_ID_EVENTS.@endif */
317         CONTACT_PROPERTY_ID_RINGTONE,                           /**< The ringtone property ID (String type) */
318         CONTACT_PROPERTY_ID_MIDDLE_NAME,                        /**< The middle name property ID (String type) */
319         CONTACT_PROPERTY_ID_LAST_REVISION,                      /**< An ID for the calendar date and time for the last update in Coordinated Universal Time (UTC) @n    Read-only (DateTime type). */
320         CONTACT_PROPERTY_ID_NAME_PREFIX,                        /**< The name honorific prefix property ID (String type) */
321         CONTACT_PROPERTY_ID_NAME_SUFFIX,                        /**< The name honorific suffix property ID (String type) */
322 };
323
324 /**
325  * @enum        ContactMultiPropertyId
326  *
327  * Defines the IDs for accessing the multi-value type properties of a %Contact. @n
328  * The properties have several values and they are called multi-type properties.
329  * @since       2.0
330  */
331 enum ContactMultiPropertyId
332 {
333         CONTACT_MPROPERTY_ID_PHONE_NUMBERS,             /**< The phone number property ID (PhoneNumber class) */
334         CONTACT_MPROPERTY_ID_EMAILS,                    /**< The email property ID (Email class) */
335         CONTACT_MPROPERTY_ID_URLS,                      /**< The URL property ID (Url class) */
336         CONTACT_MPROPERTY_ID_ADDRESSES,                 /**< The address property ID (Address class) */
337         CONTACT_MPROPERTY_ID_IMADDRESSES,               /**< The Instant Message property ID (ImAddress class) */
338         CONTACT_MPROPERTY_ID_EVENTS,                    /**< The contact event property ID (ContactEvent type) */
339         CONTACT_MPROPERTY_ID_ORGANIZATIONS,             /**< The organization property ID (Organization type) */
340         CONTACT_MPROPERTY_ID_NOTES,                     /**< The note property ID (String type) */
341         CONTACT_MPROPERTY_ID_NICKNAMES,                 /**< The nickname property ID (String type) */
342         CONTACT_MPROPERTY_ID_RELATIONSHIPS,             /**< The relationship property ID (Relationship type) */
343 };
344
345 /**
346  * @if OSPDEPREC
347  * The number of #ContactPropertyId factors.
348  *
349  * @brief <i> [Deprecated] </i>
350  * @deprecated  This constant is deprecated it is not used any more.
351  * @since       2.0
352  * @endif
353  */
354 static const int CONTACT_PROPERTY_ID_NUM = 14;
355
356 /**
357  * @if OSPDEPREC
358  * The number of #ContactMultiPropertyId factors.
359  *
360  * @brief <i> [Deprecated] </i>
361  * @deprecated  This constant is deprecated it is not used any more.
362  * @since       2.0
363  * @endif
364  */
365 static const int CONTACT_MPROPERTY_ID_NUM = 5;
366
367 /**
368  * @enum        RecordSensitivity
369  * Defines the sensitivity type of the calendar book record. @n
370  * This value represents the access classification property of @c vCalendar and @c iCalendar.
371  *
372  * @since       2.0
373  */
374 enum RecordSensitivity
375 {
376         SENSITIVITY_PUBLIC,                     /**< The public sensitivity */
377         SENSITIVITY_PRIVATE,                    /**< The private sensitivity */
378         SENSITIVITY_CONFIDENTIAL                /**< The confidential sensitivity */
379 };
380
381 /**
382  * @enum        AttendeeRole
383  * @brief       Defines the role of the attendee.
384  * @since       2.0
385  */
386 enum AttendeeRole
387 {
388         ATTENDEE_ROLE_ATTENDEE,                  /**< The attendee      */
389         ATTENDEE_ROLE_REQUIRED_ATTENDEE,        /**< The required attendee      */
390         ATTENDEE_ROLE_ORGANIZER                  /**< The organizer     */
391 };
392
393 /**
394  * @enum        AttendeeStatus
395  *
396  * Defines the possible status of the attendee.
397  * @since       2.0
398  */
399 enum AttendeeStatus
400 {
401         ATTENDEE_STATUS_NONE,                   /**< The none status */
402         ATTENDEE_STATUS_NOT_RESPONDED,  /**< The not-responded status */
403         ATTENDEE_STATUS_ACCEPTED,               /**< The accepted status */
404         ATTENDEE_STATUS_DECLINED,               /**< The declined status*/
405         ATTENDEE_STATUS_TENTATIVE,              /**< The tentative status*/
406 };
407
408 /**
409  * @if OSPDEPREC
410  * @enum                EventCategory
411  * @brief        <i> [Deprecated] </i> Defines the categories to classify the event.
412  *
413  * @deprecated  This enum type is deprecated because the category of event is not used any more.
414  * @since       2.0
415  * @endif
416  */
417 enum EventCategory
418 {
419         EVENT_CATEGORY_APPOINTMENT = 0x00000001,                /**< @if OSPDEPREC The appointment category @endif */
420         EVENT_CATEGORY_ANNIVERSARY = 0x00000002,                /**< @if OSPDEPREC The anniversary category @endif */
421 };
422
423 /**
424  * @if OSPDEPREC
425  * All the event categories.
426  *
427  * @brief <i> [Deprecated] </i>
428  * @deprecated  This constant is deprecated because the category of event is not used any more.
429  * @since       2.0
430  * @endif
431  */
432 static const unsigned long EVENT_CATEGORY_ALL = EVENT_CATEGORY_APPOINTMENT | EVENT_CATEGORY_ANNIVERSARY;
433
434 /**
435  * @enum                EventPriority
436  * @brief       Defines the possible priority levels of the event.
437  *
438  * @since       2.0
439  */
440 enum EventPriority
441 {
442         EVENT_PRIORITY_LOW,              /**< The low priority */
443         EVENT_PRIORITY_NORMAL,          /**< The normal priority */
444         EVENT_PRIORITY_HIGH              /**< The high priority */
445 };
446
447 /**
448  * @enum                EventStatus
449  * @brief       Defines the possible statuses of the event.
450  *
451  * @since       2.0
452  */
453 enum EventStatus
454 {
455         EVENT_STATUS_NONE,              /**< The none status    */
456         EVENT_STATUS_CONFIRMED, /**< The confirmed status       */
457         EVENT_STATUS_CANCELLED, /**< The canceled status        */
458         EVENT_STATUS_TENTATIVE  /**< The tentative status       */
459 };
460
461 /**
462  * @enum                BusyStatus
463  * @brief       Defines the busy statuses of the event.
464  *
465  * @since       2.0
466  */
467 enum BusyStatus
468 {
469         BUSY_STATUS_FREE,               /**< The free status    */
470         BUSY_STATUS_BUSY,               /**< The busy status    */
471         BUSY_STATUS_UNAVAILABLE,        /**< The unavailable status     */
472         BUSY_STATUS_TENTATIVE   /**< The tentative status       */
473 };
474
475 /**
476  * @enum        TodoStatus
477  * Defines the possible to-do status types.
478  *
479  * @since       2.0
480  */
481 enum TodoStatus
482 {
483         TODO_STATUS_NONE = 0x00000001,                          /**< The none status                    */
484         TODO_STATUS_NEEDS_ACTION = 0x00000002,          /**< The needs action status    */
485         TODO_STATUS_COMPLETED = 0x00000004,                     /**< The completed status               */
486         TODO_STATUS_IN_PROCESS = 0x00000008,            /**< The in process status              */
487         TODO_STATUS_CANCELLED = 0x00000010,                     /**< The canceled status                */
488 };
489
490 /** All the to-do statuses.
491  *
492  * @since       2.0
493  */
494 static const unsigned long TODO_STATUS_ALL = TODO_STATUS_NONE | TODO_STATUS_NEEDS_ACTION | TODO_STATUS_COMPLETED |
495                                                                                          TODO_STATUS_IN_PROCESS | TODO_STATUS_CANCELLED;
496
497 /**
498  * @enum        TodoPriority
499  * Defines the possible to-do priority levels.
500  *
501  * @since       2.0
502  */
503 enum TodoPriority
504 {
505         TODO_PRIORITY_LOW = 0x00000001,                         /**< The low priority           */
506         TODO_PRIORITY_NORMAL = 0x00000002,                      /**< The normal priority        */
507         TODO_PRIORITY_HIGH = 0x00000004,                        /**< The high priority          */
508 };
509
510 /** All the to-do priorities.
511  *
512  * @since       2.0
513  */
514 static const unsigned long TODO_PRIORITY_ALL = TODO_PRIORITY_LOW | TODO_PRIORITY_NORMAL | TODO_PRIORITY_HIGH;
515
516 /**
517  * @if OSPDEPREC
518  * @enum RecordEventType
519  * Defines the record event types.
520  *
521  * @brief <i> [Deprecated] </i>
522  * @deprecated This enum is deprecated because IRecordEventListener interface is deprecated.
523  *
524  * @since       2.0
525  * @endif
526  */
527 enum RecordEventType
528 {
529         RECORD_ADDED,                   /**< @if OSPDEPREC The adding of a new record @endif */
530         RECORD_UPDATED,                 /**< @if OSPDEPREC The updating of a record @endif */
531         RECORD_REMOVED,                 /**< @if OSPDEPREC The removal of a record @endif */
532         ALL_RECORDS_REMOVED,            /**<
533                                          * @if OSPDEPREC
534                                          * The removal of all records @n
535                                          * @deprecated   This enum value is deprecated because it's not used any more.
536                                          * @endif
537                                          */
538         MULTI_RECORDS_ADDED,            /**< @if OSPDEPREC The adding of multiple records @endif        */
539         MULTI_RECORDS_UPDATED,          /**< @if OSPDEPREC The adding, updating, and/or removal of multiple records @endif */
540         MULTI_RECORDS_REMOVED           /**< @if OSPDEPREC The removal of multiple records @endif */
541 };
542
543 /**
544  * @enum        RecurFrequency
545  * Defines the recurrence frequency type.
546  *
547  * @since       2.0
548  */
549 enum RecurFrequency
550 {
551         FREQ_DAILY,              /**< The daily recurrence      */
552         FREQ_WEEKLY,            /**< The weekly recurrence      */
553         FREQ_MONTHLY,           /**< The monthly recurrence     */
554         FREQ_YEARLY              /**< The yearly recurrence     */
555 };
556
557 /**
558  * @enum        CalDayOfWeek
559  * Defines the day of week type.
560  *
561  * @since       2.0
562  */
563 enum CalDayOfWeek
564 {
565         CAL_SUNDAY = 0x0001,            /**< The day of the week is Sunday      */
566         CAL_MONDAY = 0x0002,            /**< The day of the week is Monday      */
567         CAL_TUESDAY = 0x0004,           /**< The day of the week is Tuesday     */
568         CAL_WEDNESDAY = 0x0008,  /**< The day of the week is Wednesday */
569         CAL_THURSDAY = 0x0010,          /**< The day of the week is Thursday */
570         CAL_FRIDAY = 0x0020,            /**< The day of the week is Friday      */
571         CAL_SATURDAY = 0x0040           /**< The day of the week is Saturday */
572 };
573
574 /**
575  * @enum        RecordChangeType
576  * Defines the change type of a Record.
577  *
578  * @since       2.0
579  */
580 enum RecordChangeType
581 {
582         RECORD_CHANGE_TYPE_ADDED,               /**< A record is added */
583         RECORD_CHANGE_TYPE_REMOVED,             /**< A record is removed */
584         RECORD_CHANGE_TYPE_UPDATED,             /**< A record is updated */
585 };
586
587 /**
588  * @enum                CalendarItemType
589  * Defines item types to specify which kind of item the calendar can contain.
590  *
591  * @since       2.0
592  */
593 enum CalendarItemType
594 {
595         CALENDAR_ITEM_TYPE_EVENT_ONLY = 0x1,                    /**< The item type for event */
596         CALENDAR_ITEM_TYPE_TODO_ONLY = 0x2,                     /**< The item type for to-do item */
597         CALENDAR_ITEM_TYPE_EVENT_AND_TODO = 0x3         /**< The item type for event and to-do item */
598 };
599
600 /**
601  * @enum PhoneNumberType
602  *
603  * Defines the types of phone number.
604  * @since       2.0
605  */
606 enum PhoneNumberType
607 {
608         PHONENUMBER_TYPE_HOME,          /**< The phone number type for home telephone*/
609         PHONENUMBER_TYPE_WORK,          /**< The phone number type for work telephone*/
610         PHONENUMBER_TYPE_MOBILE,        /**< The phone number type for mobile */
611         PHONENUMBER_TYPE_HOME_FAX,      /**< The phone number type for home fax */
612         PHONENUMBER_TYPE_WORK_FAX,      /**< The phone number type for work fax */
613         PHONENUMBER_TYPE_PAGER,         /**< The phone number type for pager */
614         PHONENUMBER_TYPE_OTHER,         /**< The phone number type for other */
615         PHONENUMBER_TYPE_CUSTOM         /**< The custom type @n The actual type can be set in the label. */
616 };
617
618 /**
619  * @enum        ReminderTimeUnit
620  * Defines the reminder time unit.
621  *
622  * @since       2.0
623  */
624 enum ReminderTimeUnit
625 {
626         REMINDER_TIME_UNIT_MINUTE,              /**< The unit of time offset is minute */
627         REMINDER_TIME_UNIT_HOUR,                        /**< The unit of time offset is hour */
628         REMINDER_TIME_UNIT_DAY,                 /**< The unit of time offset is day */
629         REMINDER_TIME_UNIT_WEEK                 /**< The unit of time offset is week */
630 };
631
632 /**
633  * @enum EmailType
634  *
635  * Defines the types of email.
636  *
637 * @since        2.0
638  */
639 enum EmailType
640 {
641         EMAIL_TYPE_PERSONAL,    /**< The email type for personal*/
642         EMAIL_TYPE_WORK,        /**< The email type for work */
643         EMAIL_TYPE_OTHER,       /**< The email type for other */
644         EMAIL_TYPE_CUSTOM       /**< The custom type @n The actual type can be set in the label. */
645 };
646
647 /**
648  * @enum AddressType
649  *
650  * Defines the types of address.
651  *
652 * @since        2.0
653  */
654 enum AddressType
655 {
656         ADDRESS_TYPE_HOME,      /**< The address type for home address*/
657         ADDRESS_TYPE_WORK,      /**< The address type for work address*/
658         ADDRESS_TYPE_OTHER,     /**< The address type for other*/
659         ADDRESS_TYPE_CUSTOM     /**< The custom type @n The actual type can be set in the label. */
660 };
661
662 /**
663  * @enum ContactEventType
664  *
665  * Defines the types of event.
666  *
667  * @since       2.0
668  */
669 enum ContactEventType
670 {
671         CONTACT_EVENT_TYPE_BIRTHDAY,    /**< The event type for birthday */
672         CONTACT_EVENT_TYPE_ANNIVERSARY, /**< The event type for anniversary */
673         CONTACT_EVENT_TYPE_OTHER,       /**< The event type for other */
674         CONTACT_EVENT_TYPE_CUSTOM       /**< The custom event @n The actual type can be set in the label. */
675 };
676
677 /**
678  * @enum UrlType
679  *
680  * Defines the types of URL.
681  *
682  * @since       2.0
683  */
684 enum UrlType
685 {
686         URL_TYPE_PERSONAL,      /**< The URL type is personal */
687         URL_TYPE_WORK,          /**< The URL type is work */
688         URL_TYPE_OTHER,         /**< The URL type is other */
689         URL_TYPE_CUSTOM         /**< The custom type @n The actual type can be set in the label. */
690 };
691
692 /**
693  * @enum RelationshipType
694  *
695  * Defines the types of relationship.
696  *
697  * @since       2.0
698  */
699 enum RelationshipType
700 {
701         CONTACT_RELATIONSHIP_TYPE_ASSISTANT,            /**< The relation type for assistant */
702         CONTACT_RELATIONSHIP_TYPE_BROTHER,              /**< The relation type for brother */
703         CONTACT_RELATIONSHIP_TYPE_CHILD,                /**< The relation type for child */
704         CONTACT_RELATIONSHIP_TYPE_DOMESTIC_PARTNER,     /**< The relation type for domestic partner */
705         CONTACT_RELATIONSHIP_TYPE_FATHER,               /**< The relation type for father */
706         CONTACT_RELATIONSHIP_TYPE_FRIEND,               /**< The relation type for friend */
707         CONTACT_RELATIONSHIP_TYPE_MANAGER,              /**< The relation type for manager */
708         CONTACT_RELATIONSHIP_TYPE_MOTHER,               /**< The relation type for mother */
709         CONTACT_RELATIONSHIP_TYPE_PARENT,               /**< The relation type for parent */
710         CONTACT_RELATIONSHIP_TYPE_PARTNER,              /**< The relation type for partner */
711         CONTACT_RELATIONSHIP_TYPE_REFERRED_BY,          /**< The relation type for referred-by */
712         CONTACT_RELATIONSHIP_TYPE_RELATIVE,             /**< The relation type for relative */
713         CONTACT_RELATIONSHIP_TYPE_SISTER,               /**< The relation type for sister */
714         CONTACT_RELATIONSHIP_TYPE_SPOUSE,               /**< The relation type for spouse */
715         CONTACT_RELATIONSHIP_TYPE_CUSTOM                /**< The custom event @n The actual type can be set in the label. */
716 };
717 /**
718  * @if OSPDEPREC
719  * The maximum length of the phone number property.
720  *
721  * @brief <i> [Deprecated] </i>
722  * @deprecated  This constant is deprecated because there is no limitation any more.
723  * @since       2.0
724  * @endif
725  */
726 static const int MAX_PHONE_NUMBER_LENGTH = 50;
727
728 //This value is for internal use only. Using this value can cause behavioral,
729 //security-related, and consistency-related issues in the application.
730 typedef int AccountId;
731
732 /**
733  * The person ID.
734  *
735  * @since       2.0
736  */
737 typedef int PersonId;
738
739
740 /**
741  * The addressbook ID.
742  *
743  * @since       2.0
744  */
745 typedef int AddressbookId;
746
747 /**
748 * An invalid address book ID indicates that the address book has not been properly stored to the address book database.
749 *
750 * @since        2.0
751 */
752 static const AddressbookId INVALID_ADDRESSBOOK_ID = -2;
753
754 /**
755 * The default addressbook ID.
756 *
757 * @since        2.0
758 */
759 static const AddressbookId DEFAULT_ADDRESSBOOK_ID = 0;
760
761 /**
762  * @enum FilterConjunctiveOperator
763  * Defines the conjunctive operators to compound the filtering expressions.
764  *
765  * @since       2.0
766  */
767 enum FilterConjunctiveOperator
768 {
769         FI_CONJ_OP_NONE,        /**< None */
770         FI_CONJ_OP_AND,         /**< AND operator */
771         FI_CONJ_OP_OR,          /**< OR operator */
772 };
773
774 /**
775  * @enum FilterComparisonOperator
776  * Defines the comparison operators.
777  *
778  * @since       2.0
779  */
780 enum FilterComparisonOperator
781 {
782         FI_CMP_OP_EQUAL,                        /**< = operator */
783         FI_CMP_OP_LESS_THAN,                    /**< < operator */
784         FI_CMP_OP_LESS_THAN_OR_EQUAL,           /**< <= operator */
785         FI_CMP_OP_GREATER_THAN,                 /**< > operator*/
786         FI_CMP_OP_GREATER_THAN_OR_EQUAL,        /**< >= operator */
787         FI_CMP_OP_IS_NULL,                      /**< IS NULL operator */
788 };
789
790 /**
791  * @enum FilterStringOperator
792  * Defines the matching criteria for Strings.
793  *
794  * @since       2.0
795  */
796 enum FilterStringOperator
797 {
798         FI_STR_OP_EQUAL,                /**< The operator for matching the string exactly */
799         FI_STR_OP_FULL_STRING,          /**< The operator for matching the full-string without case sensitive */
800         FI_STR_OP_START_WITH,           /**< The operator for matching the string starting with the specified keyword */
801         FI_STR_OP_END_WITH,             /**< The operator for matching the string ending with the specified keyword */
802         FI_STR_OP_CONTAIN,              /**< The operator for matching the string containing the specified keyword */
803         FI_STR_OP_IS_NOT_NULL,          /**< The operator for matching any string(except NULL) @n The specified is ignored. */
804 };
805
806 /**
807  * @enum AddressbookFilterType
808  * Defines the type of the filter for Addressbook.
809  *
810  * @since       2.0
811  */
812 enum AddressbookFilterType
813 {
814         AB_FI_TYPE_ADDRESSBOOK,         /**< The filter for the addressbooks @n AddressbookFilterProperty is only used in this type filter.
815                                                 The search result with this filter is a list of Addressbook. */
816         AB_FI_TYPE_PERSON,              /**< The filter for the persons @n PersonFilterProperty is only used in this type filter.
817                                                 The search result with this filter is a list of Person. */
818         AB_FI_TYPE_CONTACT,             /**< The filter for the contacts @n ContactFilterProperty is only used in this type filter.
819                                                 The search result with this filter is a list of Contact. */
820         AB_FI_TYPE_CATEGORY,            /**< The filter for the categories @n CategoryFilterProperty is only used in this type filter.
821                                                 The search result with this filter is a list of Category. */
822         AB_FI_TYPE_PHONE_CONTACT,       /**< The filter for the contacts with phone number @n PhoneContactFilterProperty is only used in this type filter.
823                                                 The search result with this filter is a list of PhoneNumberContact. */
824         AB_FI_TYPE_EMAIL_CONTACT,       /**< The filter for the contacts with email @n EmailContactFilterProperty is only used in this type filter.
825                                                 The search result with this filter is a list of EmailContact. */
826 };
827
828 /**
829  * @enum AddressbookFilterProperty
830  * Defines the property for filtering the addressbooks.
831  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_ADDRESSBOOK type.
832  *
833  * @since       2.0
834  */
835 enum AddressbookFilterProperty
836 {
837         AB_FI_PR_ADDRESSBOOK_ID = 1,            /**< The addressbook ID: int (AddressbookId) */
838         AB_FI_PR_ACCOUNT_ID,                    /**< The account ID: int (AccountId) */
839         AB_FI_PR_NAME,                          /**< The addressbook name: String */
840 };
841
842 /**
843  * @enum PersonFilterProperty
844  * Defines the property for filtering the persons.
845  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_PERSON type.
846  *
847  * @since       2.0
848  */
849 enum PersonFilterProperty
850 {
851         PERSON_FI_PR_PERSON_ID = 100,           /**< The person ID: int (RecordId) */
852         PERSON_FI_PR_DISPLAY_NAME,              /**< The display name: String */
853         PERSON_FI_PR_HAS_PHONE,                 /**< Whether the person has phone numbers or not: bool */
854         PERSON_FI_PR_HAS_EMAIL,                 /**< Whether the person has emails or not: bool */
855         PERSON_FI_PR_IS_FAVORITE,               /**< Whether the person is favorite or not: bool */
856         PERSON_FI_PR_CATEGORY_ID,               /**< The category ID: int (RecordId) */
857         PERSON_FI_PR_ADDRESSBOOK_ID,            /**< The addressbook ID: int (AddressbookId) */
858 };
859
860 /**
861  * @enum ContactFilterProperty
862  * Defines the property for filtering the contacts.
863  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_CONTACT type.
864  *
865  * @since       2.0
866  */
867 enum ContactFilterProperty
868 {
869         CONTACT_FI_PR_CONTACT_ID = 200,         /**< The contact ID: int (RecordId) */
870         CONTACT_FI_PR_ADDRESSBOOK_ID,           /**< The addressbook ID: int (AddressbookId) */
871         CONTACT_FI_PR_PERSON_ID,                /**< The person ID: int (PersonId) */
872         CONTACT_FI_PR_DISPLAY_NAME,             /**< The display name: String */
873         CONTACT_FI_PR_HAS_PHONE,                /**< Whether the contact has phone numbers or not: bool */
874         CONTACT_FI_PR_HAS_EMAIL,                /**< Whether the contact has emails or not: bool */
875 };
876
877 /**
878  * @enum CategoryFilterProperty
879  * Defines the property for filtering the categories.
880  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_CATEGORY type.
881  *
882  * @since       2.0
883  */
884 enum CategoryFilterProperty
885 {
886         CATEGORY_FI_PR_CATEGORY_ID = 300,       /**< The category ID: int (RecordId) */
887         CATEGORY_FI_PR_ADDRESSBOOK_ID,          /**< The addressbook ID: int (AddressbookId) */
888         CATEGORY_FI_PR_NAME,                    /**< The category name: String */
889 };
890
891 /**
892  * @enum PhoneContactFilterProperty
893  * Defines the property for filtering the contacts with phone number.
894  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_PHONE_CONTACT type.
895  *
896  * @since       2.0
897  */
898 enum PhoneContactFilterProperty
899 {
900         PHONE_CONTACT_FI_PR_CONTACT_ID = 400,       /**< The contact ID: int (RecordId) */
901         PHONE_CONTACT_FI_PR_ADDRESSBOOK_ID,         /**< The addressbook ID: int (AddressbookId) */
902         PHONE_CONTACT_FI_PR_PERSON_ID,              /**< The person ID: int (PersonId) */
903         PHONE_CONTACT_FI_PR_DISPLAY_NAME,           /**< The display name: String */
904         PHONE_CONTACT_FI_PR_PHONE,                  /**< The phone number: String */
905 };
906
907 /**
908  * @enum EmailContactFilterProperty
909  * Defines the property for filtering the contacts with email.
910  * This properties can be used to create a AddressbookFilter of #AB_FI_TYPE_EMAIL_CONTACT type.
911  *
912  * @since       2.0
913  */
914 enum EmailContactFilterProperty
915 {
916         EMAIL_CONTACT_FI_PR_CONTACT_ID = 500,              /**< The contact ID: int (RecordId) */
917         EMAIL_CONTACT_FI_PR_ADDRESSBOOK_ID,                /**< The addressbook ID: int (AddressbookId) */
918         EMAIL_CONTACT_FI_PR_PERSON_ID,                     /**< The person ID: int (PersonId) */
919         EMAIL_CONTACT_FI_PR_DISPLAY_NAME,                  /**< The display name: String */
920         EMAIL_CONTACT_FI_PR_EMAIL,                         /**< The email: String */
921 };
922
923 /**
924  * @enum CalendarbookFilterType
925  * Defines the type of the filter for Calendarbook.
926  *
927  * @since       2.0
928  */
929 enum CalendarbookFilterType
930 {
931         CB_FI_TYPE_EVENT,               /**< The filter for the event of Calendarbook @n EventFilterProperty is only used in this type filter. The search result with this filter is a list of CalEvent. */
932         CB_FI_TYPE_TODO,                /**< The filter for the to-do of Calendarbook @n TodoFilterProperty is only used in this type filter. The search result with this filter is a list of CalTodo. */
933         CB_FI_TYPE_CALENDAR,            /**< The filter for the calendar of Calendarbook @n CalendarFilterProperty is only used in this type filter. The search result with this filter is a list of Calendar. */
934         CB_FI_TYPE_ALL_DAY_EVENT_INSTANCE,                      /**< The filter for all day event instance of Calendarbook @n EventInstanceFilterProperty is only used in this type filter. The search result with this filter is a list of CalEventInstance. */
935         CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE           /**< The filter for non-all day event instance of Calendarbook @n EventInstanceFilterProperty is only used in this type filter. The search result with this filter is a list of CalEventInstance. */
936 };
937
938 /**
939  * @enum EventFilterProperty
940  * Defines the property for filtering the events.
941  * This properties can be used to create a CalendarbookFilter of CB_FI_TYPE_EVENT type.
942  *
943  * @since       2.0
944  */
945 enum EventFilterProperty
946 {
947         EVENT_FI_PR_EVENT_ID = 1,               /**< The event id: int (RecordId) */
948         EVENT_FI_PR_CALENDAR_ID,                /**< The calendar id: long long (RecordId) */
949         EVENT_FI_PR_SUBJECT,                            /**< The subject of the event: String */
950         EVENT_FI_PR_DESCRIPTION,                /**< The description of the event: String */
951         EVENT_FI_PR_LOCATION,                   /**< The location of the event: String */
952         EVENT_FI_PR_BUSY_STATUS,                        /**< The busy status of the event: int (BusyStatus) */
953         EVENT_FI_PR_PRIORITY,                           /**< The priority of the event: int (EventPriority) */
954         EVENT_FI_PR_SENSITIVITY,                        /**< The sensitivity of the event: int (RecordSensitivity) */
955         EVENT_FI_PR_STATUS,                     /**< The status of the event: int (EventStatus) */
956         EVENT_FI_PR_UID,                                /**< The uid of the event: String */
957         EVENT_FI_PR_LATITUDE,                           /**< The latitude of the event: Double */
958         EVENT_FI_PR_LONGITUDE,                  /**< The longitude of the event: Double */
959         EVENT_FI_PR_LAST_REVISED_TIME,                  /**< The last revised time of the event: DateTime */
960         EVENT_FI_PR_HAS_REMINDER,                       /**< Whether the event has the reminder or not: bool*/
961         EVENT_FI_PR_HAS_ATTENDEE                        /**< Whether the event has the attendee or not: bool*/
962 };
963
964 /**
965  * @enum TodoFilterProperty
966 * Defines the property for filtering the to-dos.
967 * This properties can be used to create a CalendarbookFilter of CB_FI_TYPE_TODO type.
968 *
969 * @since        2.0
970 */
971 enum TodoFilterProperty
972 {
973         TODO_FI_PR_TODO_ID = 100,                       /**< The todo id: long long (RecordId) */
974         TODO_FI_PR_CALENDAR_ID,                 /**< The calendar id: long long (RecordId) */
975         TODO_FI_PR_START_DATE,                  /**< The start date of the to-do: DateTime*/
976         TODO_FI_PR_DUE_DATE,                    /**< The due date of the to-do: DateTime */
977         TODO_FI_PR_SUBJECT,                     /**< The subject of the to-do: String */
978         TODO_FI_PR_DESCRIPTION,                 /**< The description of the to-do: String */
979         TODO_FI_PR_LOCATION,                            /**< The location of the to-do: String */
980         TODO_FI_PR_PRIORITY,                            /**< The priority of the to-do: int (TodoPriority)*/
981         TODO_FI_PR_SENSITIVITY,                 /**< The sensitivity of the to-do: int (RecordSensitivity) */
982         TODO_FI_PR_STATUS,                              /**< The status of the to-do: int (TodoStatus) */
983         TODO_FI_PR_LATITUDE,                    /**< The latitude of the to-do: double*/
984         TODO_FI_PR_LONGITUDE,                   /**< The longitude of the to-do: double*/
985         TODO_FI_PR_LAST_REVISED_TIME,                   /**< The last revised time of the to-do: DateTime */
986         TODO_FI_PR_HAS_REMINDER                         /**< Whether the to-do has the reminder or not: bool*/
987 };
988
989 /**
990  * @enum EventInstanceFilterProperty
991 * Defines the property for filtering the all day event instances or non-all day event instances.
992 * This properties can be used to create the CalendarbookFilter of CB_FI_TYPE_ALL_DAY_EVENT_INSTANCE type or CB_FI_TYPE_NON_ALL_DAY_EVENT_INSTANCE type.
993 *
994 * @since        2.0
995 */
996 enum EventInstanceFilterProperty
997 {
998         EVENT_INST_FI_PR_ORIGINAL_EVENT_ID = 200,                       /**< The original event id: int (RecordId) */
999         EVENT_INST_FI_PR_CALENDAR_ID,                   /**< The calendar id: int (RecordId) */
1000         EVENT_INST_FI_PR_START_TIME,                    /**< The start time of the event instance: DateTime */
1001         EVENT_INST_FI_PR_END_TIME,                      /**< The end time of the event instance: DateTime */
1002         EVENT_INST_FI_PR_SUBJECT,                               /**< The subject of the event instance: String */
1003         EVENT_INST_FI_PR_DESCRIPTION,                   /**< The description of the event instance: String */
1004         EVENT_INST_FI_PR_LOCATION,                              /**< The location of the event instance: String */
1005         EVENT_INST_FI_PR_BUSY_STATUS,                   /**< The busy status of the event instance: int (BusyStatus) */
1006         EVENT_INST_FI_PR_PRIORITY,                              /**< The priority of the event instance: int (EventPriority) */
1007         EVENT_INST_FI_PR_SENSITIVITY,                   /**< The sensitivity of the event instance: int (RecordSensitivity) */
1008         EVENT_INST_FI_PR_STATUS,                                /**< The status of the event instance: int (EventStatus) */
1009         EVENT_INST_FI_PR_LATITUDE,                      /**< The latitude of the event instance: Double */
1010         EVENT_INST_FI_PR_LONGITUDE,                     /**< The latitude of the event instance: Double */
1011         EVENT_INST_FI_PR_IS_RECURRING,                  /**< Whether the event instance is the recurring event or not: bool*/
1012         EVENT_INST_FI_PR_HAS_REMINDER                   /**< Whether the event instance has the reminder or not: bool*/
1013 };
1014
1015 /**
1016  * @enum CalendarFilterProperty
1017 * Defines the property for filtering the calendars.
1018 * This properties can be used to create a CalendarbookFilter of CB_FI_TYPE_CALENDAR type.
1019 *
1020 * @since        2.0
1021 */
1022 enum CalendarFilterProperty
1023 {
1024         CALENDAR_FI_PR_CALENDAR_ID = 400,                       /**< The calendar id: int (RecordId) */
1025         CALENDAR_FI_PR_ACCOUNT_ID,                      /**< The account id of calendar: int (AccountId) */
1026         CALENDAR_FI_PR_NAME,                                            /**< The name of calendar: String */
1027         CALENDAR_FI_PR_ITEM_TYPE                                /**< The type of calendar: int (CalendarItemType) */
1028 };
1029
1030 }}      // Tizen::Social
1031
1032 #endif // _FSCL_TYPES_H_