Merge branch 'master' of http://git.syncroton.org/Syncroton
[tine20] / tine20 / library / Syncroton / lib / Syncroton / Model / Email.php
1 <?php
2 /**
3  * Syncroton
4  *
5  * @package     Model
6  * @license     http://www.tine20.org/licenses/lgpl.html LGPL Version 3
7  * @copyright   Copyright (c) 2012-2012 Metaways Infosystems GmbH (http://www.metaways.de)
8  * @author      Lars Kneschke <l.kneschke@metaways.de>
9  */
10
11 /**
12  * class to handle ActiveSync email
13  *
14  * @package     Model
15  * @property    array     attachments
16  * @property    string    contentType
17  * @property    array     flag
18  * @property    Syncroton_Model_EmailBody    body
19  * @property    array     cc
20  * @property    array     to
21  * @property    int       lastVerbExecuted
22  * @property    DateTime  lastVerbExecutionTime
23  * @property    int       read
24  */
25 class Syncroton_Model_Email extends Syncroton_Model_AEntry
26 {
27     const LASTVERB_UNKNOWN       = 0;
28     const LASTVERB_REPLYTOSENDER = 1;
29     const LASTVERB_REPLYTOALL    = 2;
30     const LASTVERB_FORWARD       = 3;
31     
32     protected $_xmlBaseElement = 'ApplicationData';
33     
34     protected $_properties = array(
35         'AirSyncBase' => array(
36             'attachments'             => array('type' => 'container', 'childElement' => 'attachment', 'class' => 'Syncroton_Model_EmailAttachment'),
37             'contentType'             => array('type' => 'string'),
38             'body'                    => array('type' => 'container', 'class' => 'Syncroton_Model_EmailBody'),
39             'nativeBodyType'          => array('type' => 'number'),
40         ),
41         'Email' => array(
42             'busyStatus'              => array('type' => 'number'),
43             'categories'              => array('type' => 'container', 'childElement' => 'category', 'supportedSince' => '14.0'),
44             'cc'                      => array('type' => 'string'),
45             'completeTime'            => array('type' => 'datetime'),
46             'contentClass'            => array('type' => 'string'),
47             'dateReceived'            => array('type' => 'datetime'),
48             'disallowNewTimeProposal' => array('type' => 'number'),
49             'displayTo'               => array('type' => 'string'),
50             'dTStamp'                 => array('type' => 'datetime'),
51             'endTime'                 => array('type' => 'datetime'),
52             'flag'                    => array('type' => 'container', 'class' => 'Syncroton_Model_EmailFlag'),
53             'from'                    => array('type' => 'string'),
54             'globalObjId'             => array('type' => 'string'),
55             'importance'              => array('type' => 'number'),
56             'instanceType'            => array('type' => 'number'),
57             'internetCPID'            => array('type' => 'string'),
58             'location'                => array('type' => 'string'),
59             'meetingRequest'          => array('type' => 'container', 'class' => 'Syncroton_Model_EmailMeetingRequest'),
60             'messageClass'            => array('type' => 'string'),
61             'organizer'               => array('type' => 'string'),
62             'read'                    => array('type' => 'number'),
63             'recurrences'             => array('type' => 'container'),
64             'reminder'                => array('type' => 'number'),
65             'replyTo'                 => array('type' => 'string'),
66             'responseRequested'       => array('type' => 'number'),
67             'sensitivity'             => array('type' => 'number'),
68             'startTime'               => array('type' => 'datetime'),
69             'status'                  => array('type' => 'number'),
70             'subject'                 => array('type' => 'string'),
71             'threadTopic'             => array('type' => 'string'),
72             'timeZone'                => array('type' => 'timezone'),
73             'to'                      => array('type' => 'string'),
74         ),
75         'Email2' => array(
76             'accountId'             => array('type' => 'string', 'supportedSince' => '14.1'),
77             'conversationId'        => array('type' => 'byteArray', 'supportedSince' => '14.0'),
78             'conversationIndex'     => array('type' => 'byteArray', 'supportedSince' => '14.0'),
79             'lastVerbExecuted'      => array('type' => 'number', 'supportedSince' => '14.0'),
80             'lastVerbExecutionTime' => array('type' => 'datetime', 'supportedSince' => '14.0'),
81             'meetingMessageType'    => array('type' => 'number', 'supportedSince' => '14.1'),
82             'receivedAsBcc'         => array('type' => 'number', 'supportedSince' => '14.0'),
83             'sender'                => array('type' => 'string', 'supportedSince' => '14.0'),
84             'umCallerID'            => array('type' => 'string', 'supportedSince' => '14.0'),
85             'umUserNotes'           => array('type' => 'string', 'supportedSince' => '14.0'),
86         ),
87     );
88 }