]> git.mxchange.org Git - friendica-addons.git/blob - dav/database-init.inc.php
Initial Release of the calendar plugin
[friendica-addons.git] / dav / database-init.inc.php
1 <?php
2
3
4 /**
5  * @return array
6  */
7 function dav_get_create_statements() {
8         $arr = array();
9
10         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks_community` (
11                 `uid` int(11) NOT NULL,
12   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
13   PRIMARY KEY (`uid`)
14 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
15
16         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_addressbooks_phone` (
17                 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
18   `uid` int(11) NOT NULL,
19   `principaluri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
20   `displayname` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
21   `uri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
22   `description` text COLLATE utf8_unicode_ci,
23   `ctag` int(11) unsigned NOT NULL DEFAULT '1',
24   PRIMARY KEY (`id`),
25   UNIQUE KEY `principaluri` (`principaluri`,`uri`)
26 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
27
28         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cache_synchronized` (
29                 `uid` mediumint(8) unsigned NOT NULL,
30   `namespace` smallint(6) NOT NULL,
31   `namespace_id` int(11) NOT NULL,
32   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
33   PRIMARY KEY (`uid`,`namespace`,`namespace_id`),
34   KEY `namespace` (`namespace`,`namespace_id`)
35 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
36
37         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_caldav_log` (
38                 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
39   `uid` mediumint(9) NOT NULL,
40   `ip` varchar(15) NOT NULL,
41   `user_agent` varchar(100) NOT NULL,
42   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
43   `method` varchar(10) NOT NULL,
44   `url` varchar(100) NOT NULL,
45   PRIMARY KEY (`id`),
46   KEY `mitglied` (`uid`)
47 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
48
49         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_calendarobjects` (
50                 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
51   `namespace` mediumint(9) NOT NULL,
52   `namespace_id` int(10) unsigned NOT NULL,
53   `calendardata` text,
54   `uri` varchar(200) NOT NULL,
55   `lastmodified` timestamp NULL DEFAULT NULL,
56   `etag` varchar(15) NOT NULL,
57   `size` int(10) unsigned NOT NULL,
58   PRIMARY KEY (`id`),
59   UNIQUE KEY `uri` (`uri`,`namespace`,`namespace_id`),
60   KEY `namespace` (`namespace`,`namespace_id`)
61 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
62
63         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_calendars` (
64                 `namespace` mediumint(9) NOT NULL,
65   `namespace_id` int(10) unsigned NOT NULL,
66   `uid` mediumint(8) unsigned NOT NULL,
67   `calendarorder` int(11) NOT NULL DEFAULT '1',
68   `calendarcolor` varchar(20) NOT NULL DEFAULT '#5858FF',
69   `displayname` varchar(200) NOT NULL,
70   `timezone` text NOT NULL,
71   `description` varchar(500) NOT NULL,
72   `ctag` int(10) unsigned NOT NULL,
73   PRIMARY KEY (`namespace`,`namespace_id`),
74   KEY `uid` (`uid`)
75 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
76
77         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cal_virtual_object_cache` (
78                 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
79   `uid` mediumint(8) unsigned NOT NULL,
80   `namespace` mediumint(9) NOT NULL,
81   `namespace_id` int(11) NOT NULL DEFAULT '0',
82   `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
83   `data_uri` char(80) NOT NULL,
84   `data_subject` varchar(1000) NOT NULL,
85   `data_location` varchar(1000) NOT NULL,
86   `data_description` text NOT NULL,
87   `data_start` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
88   `data_end` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
89   `data_allday` tinyint(4) NOT NULL,
90   `data_type` varchar(20) NOT NULL,
91   `ical` text NOT NULL,
92   `ical_size` int(11) NOT NULL,
93   `ical_etag` varchar(15) NOT NULL,
94   PRIMARY KEY (`id`),
95   KEY `ref_type` (`namespace`,`namespace_id`),
96   KEY `mitglied` (`uid`,`data_end`),
97   KEY `data_uri` (`data_uri`)
98 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
99
100         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_cards` (
101                 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
102   `namespace` tinyint(3) unsigned NOT NULL,
103   `namespace_id` int(11) unsigned NOT NULL,
104   `contact` int(11) DEFAULT NULL,
105   `carddata` mediumtext COLLATE utf8_unicode_ci,
106   `uri` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
107   `lastmodified` int(11) unsigned DEFAULT NULL,
108   `manually_edited` tinyint(4) NOT NULL DEFAULT '0',
109   `manually_deleted` tinyint(4) NOT NULL DEFAULT '0',
110   `etag` varchar(15) COLLATE utf8_unicode_ci NOT NULL,
111   `size` int(10) unsigned NOT NULL,
112   PRIMARY KEY (`id`),
113   UNIQUE KEY `namespace` (`namespace`,`namespace_id`,`contact`),
114   KEY `contact` (`contact`)
115 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
116
117         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_jqcalendar` (
118                 `id` int(11) NOT NULL AUTO_INCREMENT,
119   `uid` int(10) unsigned NOT NULL,
120   `ical_uri` varchar(200) NOT NULL,
121   `ical_recurr_uri` varchar(100) NOT NULL,
122   `namespace` mediumint(9) NOT NULL,
123   `namespace_id` int(11) NOT NULL,
124   `permission_edit` tinyint(4) NOT NULL DEFAULT '1',
125   `Subject` varchar(1000) DEFAULT NULL,
126   `Location` varchar(1000) DEFAULT NULL,
127   `Description` text,
128   `StartTime` timestamp NULL DEFAULT NULL,
129   `EndTime` timestamp NULL DEFAULT NULL,
130   `IsAllDayEvent` smallint(6) NOT NULL,
131   `Color` varchar(20) DEFAULT NULL,
132   `RecurringRule` varchar(500) DEFAULT NULL,
133   PRIMARY KEY (`id`),
134   KEY `user` (`uid`,`StartTime`),
135   KEY `zuord_typ` (`namespace`,`namespace_id`),
136   KEY `ical_uri` (`ical_uri`,`ical_recurr_uri`)
137 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
138
139         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_locks` (
140                 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
141   `owner` varchar(100) DEFAULT NULL,
142   `timeout` int(10) unsigned DEFAULT NULL,
143   `created` int(11) DEFAULT NULL,
144   `token` varchar(100) DEFAULT NULL,
145   `scope` tinyint(4) DEFAULT NULL,
146   `depth` tinyint(4) DEFAULT NULL,
147   `uri` text,
148   PRIMARY KEY (`id`)
149 ) ENGINE=MyISAM DEFAULT CHARSET=utf8";
150
151
152         $arr[] = "CREATE TABLE IF NOT EXISTS `dav_notifications` (
153                 `id` int(11) NOT NULL AUTO_INCREMENT,
154   `uid` int(10) unsigned NOT NULL,
155   `ical_uri` varchar(200) NOT NULL,
156   `ical_recurr_uri` varchar(100) NOT NULL,
157   `namespace` mediumint(8) unsigned NOT NULL,
158   `namespace_id` int(10) unsigned NOT NULL,
159   `alert_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
160   `rel_type` enum('second','minute','hour','day','week','month','year') NOT NULL,
161   `rel_value` mediumint(9) NOT NULL,
162   `notified` tinyint(4) NOT NULL DEFAULT '0',
163   PRIMARY KEY (`id`),
164   KEY `notified` (`notified`,`alert_date`),
165   KEY `ical_uri` (`uid`,`ical_uri`,`ical_recurr_uri`)
166 ) ENGINE=MyISAM  DEFAULT CHARSET=utf8";
167
168         return $arr;
169 }
170
171 /**
172  * @return int
173  */
174 function dav_check_tables() {
175         $dbv = get_config("dav", "db_version");
176         if ($dbv == CALDAV_DB_VERSION) return 0; // Correct
177         if (is_numeric($dbv)) return 1; // Older version (update needed)
178         return -1; // Not installed
179 }
180
181
182 /**
183  * @return array
184  */
185 function dav_create_tables()
186 {
187         $stms = dav_get_create_statements();
188         $errors = array();
189
190         global $db;
191         foreach ($stms as $st) {
192                 $db->q($st);
193                 if ($db->error) $errors[] = $db->error;
194         }
195
196         if (count($errors) == 0) set_config("dav", "db_version", CALDAV_DB_VERSION);
197
198         return $errors;
199 }