8900e2a28aa50b2da5a8d84acde114278f68806a
[framework/pim/calendar-service.git] / schema / schema.sql
1 --
2 -- Calendar Service
3 --
4 -- Copyright (c) 2012 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
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 CREATE TABLE schedule_table
20 (
21 id INTEGER PRIMARY KEY AUTOINCREMENT,
22 account_id INTEGER,
23 type INTEGER,
24 summary TEXT,
25 description TEXT,
26 location TEXT,
27 categories TEXT,
28 exdate TEXT,
29 task_status INTEGER,
30 priority INTEGER,
31 timezone INTEGER DEFAULT 0,
32 contact_id INTEGER,
33 busy_status INTEGER,
34 sensitivity INTEGER,
35 uid TEXT,
36 organizer_name TEXT,
37 organizer_email TEXT,
38 meeting_status INTEGER,
39 calendar_id INTEGER,
40 original_event_id INTEGER DEFAULT -1,
41 latitude DOUBLE,
42 longitude DOUBLE,
43 email_id INTEGER,
44 availability INTEGER,
45 created_time INTEGER,
46 completed_time INTEGER,
47 progress INTEGER,
48 changed_ver INTEGER,
49 created_ver INTEGER,
50 is_deleted INTEGER DEFAULT 0,
51 dtstart_type INTEGER,
52 dtstart_utime INTEGER,
53 dtstart_datetime TEXT,
54 dtstart_tzid TEXT,
55 dtend_type INTEGER,
56 dtend_utime INTEGER,
57 dtend_datetime TEXT,
58 dtend_tzid TEXT,
59 last_mod INTEGER,
60 rrule_id INTEGER DEFAULT 0,
61 recurrence_id TEXT,
62 rdate TEXT,
63 has_attendee INTEGER,
64 has_alarm INTEGER,
65 system_type INTEGER,
66 updated INTEGER,
67 sync_data1 TEXT,
68 sync_data2 TEXT,
69 sync_data3 TEXT,
70 sync_data4 TEXT
71 );
72 CREATE INDEX sch_idx1 ON schedule_table(type);
73 CREATE TRIGGER trg_sch_del AFTER DELETE ON schedule_table
74  BEGIN
75    DELETE FROM rrule_table WHERE event_id = old.id;
76    DELETE FROM alarm_table WHERE event_id = old.id;
77    DELETE FROM schedule_table WHERE original_event_id = old.id;
78    DELETE FROM normal_instance_table WHERE event_id = old.id;
79    DELETE FROM allday_instance_table WHERE event_id = old.id;
80    DELETE FROM attendee_table WHERE event_id = old.id;
81    DELETE FROM extended_table WHERE record_id = old.id AND record_type = 2;
82    DELETE FROM extended_table WHERE record_id = old.id AND record_type = 3;
83  END;
84
85 CREATE TRIGGER trig_original_mod AFTER UPDATE OF is_deleted ON schedule_table
86  BEGIN
87    DELETE FROM normal_instance_table WHERE event_id = (SELECT rowid FROM schedule_table WHERE original_event_id = old.id);
88    DELETE FROM allday_instance_table WHERE event_id = (SELECT rowid FROM schedule_table WHERE original_event_id = old.id);
89    UPDATE schedule_table SET is_deleted = 1 WHERE original_event_id = old.id;
90  END;
91
92 CREATE TABLE rrule_table
93 (
94 id INTEGER PRIMARY KEY AUTOINCREMENT,
95 event_id INTEGER,
96 freq INTEGER DEFAULT 0,
97 range_type INTEGER,
98 until_type INTEGER,
99 until_utime INTEGER,
100 until_datetime TEXT,
101 count INTEGER,
102 interval INTEGER,
103 bysecond TEXT,
104 byminute TEXT,
105 byhour TEXT,
106 byday TEXT,
107 bymonthday TEXT,
108 byyearday TEXT,
109 byweekno TEXT,
110 bymonth TEXT,
111 bysetpos TEXT,
112 wkst INTEGER
113 );
114
115 CREATE TABLE normal_instance_table
116 (
117 event_id INTEGER,
118 dtstart_utime INTEGER,
119 dtend_utime INTEGER
120 );
121
122 CREATE TABLE allday_instance_table
123 (
124 event_id INTEGER,
125 dtstart_datetime TEXT,
126 dtend_datetime TEXT
127 );
128
129 CREATE TABLE attendee_table
130 (
131 event_id INTEGER,
132 attendee_name TEXT,
133 attendee_email TEXT,
134 attendee_number TEXT,
135 attendee_status INTEGER,
136 attendee_type INTEGER,
137 attendee_ct_index INTEGER,
138 attendee_role INTEGER,
139 attendee_rsvp INTEGER,
140 attendee_group TEXT,
141 attendee_delegator_uri TEXT,
142 attendee_delegate_uri TEXT,
143 attendee_uid TEXT
144 );
145
146 CREATE TABLE calendar_table
147 (
148 id INTEGER PRIMARY KEY AUTOINCREMENT,
149 uid TEXT,
150 updated INTEGER,
151 name TEXT,
152 description TEXT,
153 color TEXT,
154 location TEXT,
155 visibility INTEGER,
156 sync_event INTEGER,
157 is_deleted INTEGER DEFAULT 0,
158 account_id INTEGER,
159 store_type INTEGER,
160 sync_data1 TEXT,
161 sync_data2 TEXT,
162 sync_data3 TEXT,
163 sync_data4 TEXT,
164 deleted INTEGER DEFAULT 0
165 );
166
167 CREATE TABLE timezone_table
168 (
169 id INTEGER PRIMARY KEY AUTOINCREMENT,
170 tz_offset_from_gmt INTEGER,
171 standard_name TEXT,
172 std_start_month INTEGER,
173 std_start_position_of_week INTEGER,
174 std_start_day INTEGER,
175 std_start_hour INTEGER,
176 standard_bias INTEGER,
177 day_light_name TEXT,
178 day_light_start_month INTEGER,
179 day_light_start_position_of_week INTEGER,
180 day_light_start_day INTEGER,
181 day_light_start_hour INTEGER,
182 day_light_bias INTEGER,
183 calendar_id INTEGER
184 );
185
186 CREATE TRIGGER trg_cal_del AFTER DELETE ON calendar_table
187  BEGIN
188    DELETE FROM timezone_table WHERE calendar_id = old.id;
189    DELETE FROM schedule_table WHERE calendar_id = old.id;
190    DELETE FROM extended_table WHERE record_id = old.id AND record_type = 1;
191  END;
192
193 CREATE TABLE alarm_table
194 (
195 event_id INTEGER,
196 alarm_time INTEGER,
197 remind_tick INTEGER,
198 remind_tick_unit INTEGER,
199 alarm_tone TEXT,
200 alarm_description TEXT,
201 alarm_type INTEGER,
202 alarm_id INTEGER default 0
203 );
204
205 CREATE TABLE reminder_table
206 (
207 pkgname TEXT NOT NULL,
208 onoff INTEGER default 1,
209 key TEXT,
210 value TEXT
211 );
212 INSERT INTO reminder_table VALUES('org.tizen.calendar', 1, NULL, NULL);
213
214 CREATE TABLE extended_table
215 (
216 id INTEGER PRIMARY KEY AUTOINCREMENT,
217 record_id INTEGER,
218 record_type INTEGER,
219 key TEXT,
220 value TEXT
221 );
222
223 CREATE TABLE deleted_table
224 (
225 schedule_id INTEGER,
226 schedule_type INTEGER,
227 calendar_id INTEGER,
228 deleted_ver INTEGER
229 );
230 CREATE INDEX deleted_schedule_ver_idx ON deleted_table(deleted_ver);
231
232 CREATE TABLE version_table
233 (
234 ver INTEGER PRIMARY KEY
235 );
236 INSERT INTO version_table VALUES(0);
237
238 INSERT INTO calendar_table VALUES(1,0,0,'Default event calendar'   ,0,'224.167.79.255',0,1,1,0,-1,1,0,0,0,0,0);
239 INSERT INTO calendar_table VALUES(2,0,0,'Default todo calendar'    ,0,'41.177.227.255',0,1,1,0,-1,2,0,0,0,0,0);
240 INSERT INTO calendar_table VALUES(3,0,0,'Default birthday calendar',0,'141.17.27.255' ,0,1,0,0,-1,1,0,0,0,0,0);