@startuml interface CommonSyncColumns { string _sync_id string sync_version integer _dirty string sync1 string sync2 string sync3 string sync4 string sync5 string sync6 string sync7 string sync8 } interface TaskListSyncColumns { string account_name string account_type } interface TaskSyncColumns { string _uid integer _deleted } interface TaskListColumns { long _id string list_name integer list_color string access_level string visible string sync_enabled string owner } class TaskList TaskListColumns <|--- TaskList TaskListSyncColumns <|--- TaskList CommonSyncColumns <|--- TaskList interface TaskColumns { integer _id integer list_id string title string location string geo string description string url string organizer integer priority integer classification long completed integer completed_is_allday integer percent_complete integer status integer is_new integer is_closed string task_color long dtstart boolean is_allday long created long last_modified string tz long due string duration string rdate string exdate string rrule long original_instance_sync_id long original_instance_id long original_instance_time integer original_instance_allday long parent_id string sorting integer has_alarms } class Tasks { string account_name string account_type string list_name integer list_color string list_owner integer list_access_level integer visible } TaskColumns <|--- Tasks CommonSyncColumns <|--- Tasks TaskSyncColumns <|--- Tasks interface InstanceColumns { long task_id long instance_start long instance_due long instance_start_sorting long instance_due_sorting long instance_duration } class Instances { string account_name string account_type string list_name integer list_color string list_owner integer list_access_level integer visible } TaskColumns <|--- Instances InstanceColumns <|--- Instances class PropertySyncColumns { string prop_sync1 string prop_sync2 string prop_sync3 string prop_sync4 string prop_sync5 string prop_sync6 string prop_sync7 string prop_sync8 } class PropertyColumns { int property_id int task_id string mimetype string prop_version string data0 string data1 string data2 string data3 string data4 string data5 string data6 string data7 string data8 string data9 string data10 string data11 string data12 string data13 string data14 string data15 } class Properties { } PropertyColumns <|-- Properties PropertySyncColumns <|-- Properties class CategoriesColumns { int _id string account_name string account_type string name int color } class Categories { } CategoriesColumns <|-- Categories class AlarmColumns { int alarm_id string last_trigger string next_trigger } AlarmColumns <|-- Alarm @enduml