• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_
17 #define INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_
18 
19 #include "medialibrary_type_const.h"
20 #include "media_column.h"
21 #include "userfilemgr_uri.h"
22 
23 namespace OHOS {
24 namespace Media {
25 const int32_t MEDIA_RDB_VERSION = 58;
26 enum {
27     VERSION_ADD_CLOUD = 2,
28     VERSION_ADD_META_MODIFED = 3,
29     VERSION_MODIFY_SYNC_STATUS = 4,
30     VERSION_ADD_API10_TABLE = 5,
31     VERSION_MODIFY_DELETE_TRIGGER = 6,
32     VERSION_ADD_CLOUD_VERSION = 7,
33     VERSION_UPDATE_CLOUD_PATH = 8,
34     VERSION_UPDATE_API10_TABLE = 9,
35     VERSION_ADD_TABLE_TYPE = 10,
36     VERSION_ADD_PACKAGE_NAME = 11,
37     VERSION_ADD_CLOUD_ALBUM = 12,
38     VERSION_ADD_CAMERA_SHOT_KEY = 13,
39     /**
40      * Remove album count triggers for batch operation performance,
41      * update PhotoAlbum.count by a query and an update(in a single transaction of course)
42      * if number of assets in an album changes.
43      */
44     VERSION_REMOVE_ALBUM_COUNT_TRIGGER = 14,
45     VERSION_ADD_ALL_EXIF = 15,
46     VERSION_ADD_UPDATE_CLOUD_SYNC_TRIGGER = 16,
47     VERSION_ADD_YEAR_MONTH_DAY = 17,
48     VERSION_UPDATE_YEAR_MONTH_DAY = 18,
49     VERSION_ADD_VISION_TABLE = 20,
50     VERSION_ADD_PHOTO_EDIT_TIME = 21,
51     VERSION_ADD_SHOOTING_MODE = 22,
52     VERSION_FIX_INDEX_ORDER = 23,
53     VERSION_ADD_FACE_TABLE = 24,
54     VERSION_ADD_HIDDEN_VIEW_COLUMNS = 26,
55     VERSION_ADD_HIDDEN_TIME = 27,
56     VERSION_ADD_LAST_VISIT_TIME = 28,
57     VERSION_ADD_LOCATION_TABLE = 29,
58     VERSION_ADD_ALBUM_ORDER = 30,
59     VERSION_ADD_SOURCE_ALBUM_TRIGGER = 31,
60     VERSION_ADD_VISION_ALBUM = 32,
61     VERSION_ADD_AESTHETIC_COMPOSITION_TABLE = 33,
62     VERSION_ADD_FORM_MAP = 34,
63     VERSION_UPDATE_LOCATION_TABLE = 35,
64     VERSION_ADD_PHOTO_CLEAN_FLAG_AND_THUMB_STATUS = 36,
65     VERSION_ADD_SEARCH_TABLE = 37,
66     VERSION_FIX_DOCS_PATH = 38,
67     VERSION_ADD_SALIENCY_TABLE = 39,
68     VERSION_UPDATE_SOURCE_ALBUM_TRIGGER = 40,
69     VERSION_ADD_IMAGE_VIDEO_COUNT = 41,
70     VERSION_ADD_SCHPT_HIDDEN_TIME_INDEX = 42,
71     VERSION_ADD_SHOOTING_MODE_TAG = 43,
72     VERSION_CLEAR_LABEL_DATA = 44,
73     VERSION_ADD_PORTRAIT_IN_ALBUM = 45,
74     VERSION_UPDATE_GEO_TABLE = 46,
75     VERSION_REOMOVE_SOURCE_ALBUM_TO_ANALYSIS = 47,
76     VERSION_ADD_MULTISTAGES_CAPTURE = 48,
77     VERSION_UPDATE_DATE_TO_MILLISECOND = 49,
78     VERSION_ADD_HAS_ASTC = 50,
79     VERSION_ADD_ADDRESS_DESCRIPTION = 51,
80     VERSION_UPDATE_SPEC_FOR_ADD_SCREENSHOT = 52,
81     VERSION_MOVE_SOURCE_ALBUM_TO_PHOTO_ALBUM_AND_ADD_COLUMNS = 53,
82     VERSION_ADD_CLOUD_ID_INDEX = 54,
83     VERSION_UPDATE_PHOTOS_MDIRTY_TRIGGER = 55,
84     VERSION_ALBUM_REFRESH = 56,
85     VERSION_ADD_FAVORITE_INDEX = 57,
86     VERSION_MODIFY_SOURCE_ALBUM_TRIGGERS = 58,
87 };
88 
89 enum {
90     MEDIA_API_VERSION_DEFAULT = 8,
91     MEDIA_API_VERSION_V9,
92     MEDIA_API_VERSION_V10,
93 };
94 
95 enum CloudFilePosition {
96     POSITION_LOCAL = 1 << 0,
97     POSITION_CLOUD =  1 << 1,
98 };
99 
100 const std::string MEDIA_LIBRARY_VERSION = "1.0";
101 
102 const int32_t DEVICE_SYNCSTATUSING = 0;
103 const int32_t DEVICE_SYNCSTATUS_COMPLETE = 1;
104 
105 const std::string MEDIA_DATA_DEVICE_PATH = "local";
106 const std::string MEDIALIBRARY_TABLE = "Files";
107 const std::string SMARTALBUM_TABLE = "SmartAlbum";
108 const std::string SMARTALBUM_MAP_TABLE = "SmartMap";
109 const std::string CATEGORY_SMARTALBUM_MAP_TABLE = "CategorySmartAlbumMap";
110 const std::string MEDIATYPE_DIRECTORY_TABLE = "MediaTypeDirectory";
111 const std::string DEVICE_TABLE = "Device";
112 const std::string BUNDLE_PERMISSION_TABLE = "BundlePermission";
113 const std::string MEDIA_DATA_ABILITY_DB_NAME = "media_library.db";
114 
115 const std::string BUNDLE_NAME = "com.ohos.medialibrary.medialibrarydata";
116 
117 const std::string ML_FILE_SCHEME = "file";
118 const std::string ML_FILE_PREFIX = "file://";
119 const std::string ML_FILE_URI_PREFIX = "file://media";
120 const std::string ML_URI_NETWORKID = "networkid";
121 const std::string ML_URI_NETWORKID_EQUAL = "?networkid=";
122 const std::string ML_URI_TIME_ID = "&time_id=";
123 const std::string ML_URI_DATE_ADDED = "date_added";
124 const std::string ML_URI_AUTHORITY = "media";
125 const std::string ML_DATA_SHARE_SCHEME = "datashare";
126 const std::string MEDIALIBRARY_DATA_ABILITY_PREFIX = "datashare://";
127 const std::string MEDIALIBRARY_DATA_URI_IDENTIFIER = "/media";
128 const std::string MEDIALIBRARY_MEDIA_PREFIX = MEDIALIBRARY_DATA_ABILITY_PREFIX +
129                                                      MEDIALIBRARY_DATA_URI_IDENTIFIER;
130 const std::string MEDIALIBRARY_TYPE_AUDIO_URI = "/audio";
131 const std::string MEDIALIBRARY_TYPE_VIDEO_URI = "/video";
132 const std::string MEDIALIBRARY_TYPE_IMAGE_URI = "/image";
133 const std::string MEDIALIBRARY_TYPE_FILE_URI  =  "/file";
134 const std::string MEDIALIBRARY_TYPE_ALBUM_URI  =  "/album";
135 const std::string MEDIALIBRARY_TYPE_SMARTALBUM_CHANGE_URI  =  "/smartalbum";
136 const std::string MEDIALIBRARY_TYPE_DEVICE_URI  =  "/device";
137 const std::string MEDIALIBRARY_TYPE_SMART_URI = "/smart";
138 
139 const std::string AUDIO_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_AUDIO_URI;
140 const std::string VIDEO_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_VIDEO_URI;
141 const std::string IMAGE_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_IMAGE_URI;
142 const std::string FILE_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_FILE_URI;
143 const std::string ALBUM_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_ALBUM_URI;
144 
145 const std::string URI_TYPE_PHOTO = "Photo";
146 const std::string URI_TYPE_AUDIO_V10 = "Audio";
147 const std::string URI_TYPE_PHOTO_ALBUM = "PhotoAlbum";
148 constexpr int64_t AGING_TIME = 30LL * 60 * 60 * 24 * 1000;
149 
150 const std::string MEDIALIBRARY_SMARTALBUM_URI = MEDIALIBRARY_DATA_URI + "/" + SMARTALBUM_TABLE;
151 const std::string MEDIALIBRARY_SMARTALBUM_MAP_URI = MEDIALIBRARY_DATA_URI + "/" + SMARTALBUM_MAP_TABLE;
152 const std::string MEDIALIBRARY_CATEGORY_SMARTALBUM_MAP_URI = MEDIALIBRARY_DATA_URI + "/"
153                                                              + CATEGORY_SMARTALBUM_MAP_TABLE;
154 const std::string MEDIALIBRARY_DIRECTORY_URI = MEDIALIBRARY_DATA_URI + "/" + MEDIATYPE_DIRECTORY_TABLE;
155 const std::string MEDIALIBRARY_BUNDLEPERM_URI = MEDIALIBRARY_DATA_URI + "/" + BUNDLE_PERMISSION_INSERT;
156 
157 const std::string MEDIALIBRARY_AUDIO_URI = MEDIALIBRARY_DATA_URI + '/' + "audio";
158 const std::string MEDIALIBRARY_VIDEO_URI = MEDIALIBRARY_DATA_URI + '/' + "video";
159 const std::string MEDIALIBRARY_IMAGE_URI = MEDIALIBRARY_DATA_URI + '/' + "image";
160 const std::string MEDIALIBRARY_FILE_URI  =  MEDIALIBRARY_DATA_URI + '/' + "file";
161 const std::string MEDIALIBRARY_ALBUM_URI  =  MEDIALIBRARY_DATA_URI + '/' + "album";
162 const std::string MEDIALIBRARY_SMARTALBUM_CHANGE_URI  =  MEDIALIBRARY_DATA_URI + '/' + "smartalbum";
163 const std::string MEDIALIBRARY_DEVICE_URI  =  MEDIALIBRARY_DATA_URI + '/' + "device";
164 const std::string MEDIALIBRARY_SMART_URI = MEDIALIBRARY_DATA_URI + '/' + "smart";
165 const std::string MEDIALIBRARY_REMOTEFILE_URI = MEDIALIBRARY_DATA_URI + '/' + "remotfile";
166 
167 const std::string MEDIA_DATA_DB_ID = "file_id";
168 const std::string MEDIA_DATA_DB_URI = "uri";
169 const std::string MEDIA_DATA_DB_FILE_PATH = "data";
170 const std::string MEDIA_DATA_DB_SIZE = "size";
171 const std::string MEDIA_DATA_DB_PARENT_ID = "parent";
172 const std::string MEDIA_DATA_DB_DATE_MODIFIED = "date_modified";
173 const std::string MEDIA_DATA_DB_DATE_MODIFIED_S = "date_modified_s";
174 const std::string MEDIA_DATA_DB_DATE_MODIFIED_TO_SECOND = "CAST(date_modified / 1000 AS BIGINT) AS date_modified_s";
175 const std::string MEDIA_DATA_DB_DATE_ADDED = "date_added";
176 const std::string MEDIA_DATA_DB_DATE_ADDED_S = "date_added_s";
177 const std::string MEDIA_DATA_DB_DATE_ADDED_TO_SECOND = "CAST(date_added / 1000 AS BIGINT) AS date_added_s";
178 const std::string MEDIA_DATA_DB_MIME_TYPE = "mime_type";
179 const std::string MEDIA_DATA_DB_TITLE = "title";
180 const std::string MEDIA_DATA_DB_DESCRIPTION = "description";
181 const std::string MEDIA_DATA_DB_NAME = "display_name";
182 const std::string MEDIA_DATA_DB_ORIENTATION = "orientation";
183 const std::string MEDIA_DATA_DB_LATITUDE = "latitude";
184 const std::string MEDIA_DATA_DB_LONGITUDE = "longitude";
185 const std::string MEDIA_DATA_DB_DATE_TAKEN = "date_taken";
186 const std::string MEDIA_DATA_DB_THUMBNAIL = "thumbnail";
187 const std::string MEDIA_DATA_DB_THUMB_ASTC = "astc";
188 const std::string MEDIA_DATA_DB_HAS_ASTC = "has_astc";
189 const std::string MEDIA_DATA_DB_CONTENT_CREATE_TIME = "content_create_time";
190 const std::string MEDIA_DATA_DB_POSITION = "position";
191 const std::string MEDIA_DATA_DB_DIRTY = "dirty";
192 const std::string MEDIA_DATA_DB_CLOUD_ID = "cloud_id";
193 const std::string MEDIA_DATA_DB_META_DATE_MODIFIED = "meta_date_modified";
194 const std::string MEDIA_DATA_DB_SYNC_STATUS = "sync_status";
195 
196 const std::string MEDIA_DATA_DB_LCD = "lcd";
197 const std::string MEDIA_DATA_DB_BUCKET_ID = "bucket_id";
198 const std::string MEDIA_DATA_DB_BUCKET_NAME = "bucket_display_name";
199 const std::string MEDIA_DATA_DB_DURATION = "duration";
200 const std::string MEDIA_DATA_DB_ARTIST = "artist";
201 
202 const std::string MEDIA_DATA_DB_AUDIO_ALBUM = "audio_album";
203 const std::string MEDIA_DATA_DB_MEDIA_TYPE = "media_type";
204 
205 const std::string MEDIA_DATA_DB_HEIGHT = "height";
206 const std::string MEDIA_DATA_DB_WIDTH = "width";
207 const std::string MEDIA_DATA_DB_OWNER_PACKAGE = "owner_package";
208 const std::string MEDIA_DATA_DB_PACKAGE_NAME = "package_name";
209 
210 const std::string MEDIA_DATA_DB_IS_FAV = "is_favorite";
211 const std::string MEDIA_DATA_DB_IS_TRASH = "is_trash";
212 const std::string MEDIA_DATA_DB_RECYCLE_PATH = "recycle_path";
213 const std::string MEDIA_DATA_DB_DATE_TRASHED = "date_trashed";
214 const std::string MEDIA_DATA_DB_DATE_TRASHED_S = "date_trashed_s";
215 const std::string MEDIA_DATA_DB_DATE_TRASHED_TO_SECOND = "CAST(date_trashed / 1000 AS BIGINT) AS date_trashed_s";
216 const std::string MEDIA_DATA_DB_IS_PENDING = "is_pending";
217 const std::string MEDIA_DATA_DB_TIME_PENDING = "time_pending";
218 const std::string MEDIA_DATA_DB_RELATIVE_PATH = "relative_path";
219 const std::string MEDIA_DATA_DB_VOLUME_NAME = "volume_name";
220 const std::string MEDIA_DATA_DB_SELF_ID = "self_id";
221 const std::string MEDIA_DATA_DB_DEVICE_NAME = "device_name";
222 
223 const std::string MEDIA_DATA_DB_ALBUM = "album";
224 const std::string MEDIA_DATA_DB_ALBUM_ID = "album_id";
225 const std::string MEDIA_DATA_DB_REFERENCE_ALBUM_ID = "reference_album_id";
226 const std::string MEDIA_DATA_DB_ALBUM_NAME = "album_name";
227 const std::string MEDIA_DATA_DB_COUNT = "count";
228 const std::string MEDIA_DATA_BUNDLENAME = "bundle_name";
229 // ringtone uri constants
230 const std::string MEDIA_DATA_DB_RINGTONE_URI = "ringtone_uri";
231 const std::string MEDIA_DATA_DB_ALARM_URI = "alarm_uri";
232 const std::string MEDIA_DATA_DB_NOTIFICATION_URI = "notification_uri";
233 const std::string MEDIA_DATA_DB_RINGTONE_TYPE = "ringtone_type";
234 
235 const std::string MEDIA_DATA_DB_PHOTO_ID = "photo_id";
236 const std::string MEDIA_DATA_DB_PHOTO_QUALITY = "photo_quality";
237 const std::string MEDIA_DATA_DB_FIRST_VISIT_TIME = "first_visit_time";
238 const std::string MEDIA_DATA_DB_DEFERRED_PROC_TYPE = "deferred_proc_type";
239 
240 const std::string MEDIA_DATA_IMAGE_BITS_PER_SAMPLE = "BitsPerSample";
241 const std::string MEDIA_DATA_IMAGE_ORIENTATION = "Orientation";
242 const std::string MEDIA_DATA_IMAGE_IMAGE_LENGTH = "ImageLength";
243 const std::string MEDIA_DATA_IMAGE_IMAGE_WIDTH = "ImageWidth";
244 const std::string MEDIA_DATA_IMAGE_GPS_LATITUDE = "GPSLatitude";
245 const std::string MEDIA_DATA_IMAGE_GPS_LONGITUDE = "GPSLongitude";
246 const std::string MEDIA_DATA_IMAGE_GPS_LATITUDE_REF = "GPSLatitudeRef";
247 const std::string MEDIA_DATA_IMAGE_GPS_LONGITUDE_REF = "GPSLongitudeRef";
248 const std::string MEDIA_DATA_IMAGE_DATE_TIME_ORIGINAL = "DateTimeOriginalForMedia";
249 const std::string MEDIA_DATA_IMAGE_EXPOSURE_TIME = "ExposureTime";
250 const std::string MEDIA_DATA_IMAGE_F_NUMBER = "FNumber";
251 const std::string MEDIA_DATA_IMAGE_ISO_SPEED_RATINGS = "ISOSpeedRatings";
252 const std::string MEDIA_DATA_IMAGE_SCENE_TYPE = "SceneType";
253 
254 const std::string MEDIA_COLUMN_COUNT = "count(*)";
255 const std::string MEDIA_COLUMN_COUNT_1 = "count(1)";
256 const std::string MEDIA_COLUMN_COUNT_DISTINCT_FILE_ID = "count(distinct file_id)";
257 
258 const std::string PHOTO_INDEX = "photo_index";
259 
260 const std::string PERMISSION_ID = "id";
261 const std::string PERMISSION_BUNDLE_NAME = "bundle_name";
262 const std::string PERMISSION_FILE_ID = "file_id";
263 const std::string PERMISSION_MODE = "mode";
264 const std::string PERMISSION_TABLE_TYPE = "table_type";
265 
266 const std::string CREATE_MEDIA_TABLE = "CREATE TABLE IF NOT EXISTS " + MEDIALIBRARY_TABLE + " (" +
267                                        MEDIA_DATA_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
268                                        MEDIA_DATA_DB_FILE_PATH + " TEXT, " +
269                                        MEDIA_DATA_DB_SIZE + " BIGINT, " +
270                                        MEDIA_DATA_DB_PARENT_ID + " INT DEFAULT 0, " +
271                                        MEDIA_DATA_DB_DATE_ADDED + " BIGINT, " +
272                                        MEDIA_DATA_DB_DATE_MODIFIED + " BIGINT, " +
273                                        MEDIA_DATA_DB_MIME_TYPE + " TEXT, " +
274                                        MEDIA_DATA_DB_TITLE + " TEXT, " +
275                                        MEDIA_DATA_DB_DESCRIPTION + " TEXT, " +
276                                        MEDIA_DATA_DB_NAME + " TEXT, " +
277                                        MEDIA_DATA_DB_ORIENTATION + " INT DEFAULT 0, " +
278                                        MEDIA_DATA_DB_LATITUDE + " DOUBLE DEFAULT 0, " +
279                                        MEDIA_DATA_DB_LONGITUDE + " DOUBLE DEFAULT 0, " +
280                                        MEDIA_DATA_DB_DATE_TAKEN + " BIGINT DEFAULT 0, " +
281                                        MEDIA_DATA_DB_THUMBNAIL + " TEXT, " +
282                                        MEDIA_DATA_DB_LCD + " TEXT, " +
283                                        MEDIA_DATA_DB_BUCKET_ID + " INT DEFAULT 0, " +
284                                        MEDIA_DATA_DB_BUCKET_NAME + " TEXT, " +
285                                        MEDIA_DATA_DB_DURATION + " INT, " +
286                                        MEDIA_DATA_DB_ARTIST + " TEXT, " +
287                                        MEDIA_DATA_DB_AUDIO_ALBUM + " TEXT, " +
288                                        MEDIA_DATA_DB_MEDIA_TYPE + " INT, " +
289                                        MEDIA_DATA_DB_HEIGHT + " INT, " +
290                                        MEDIA_DATA_DB_WIDTH + " INT, " +
291                                        MEDIA_DATA_DB_IS_TRASH + " INT DEFAULT 0, " +
292                                        MEDIA_DATA_DB_RECYCLE_PATH + " TEXT, " +
293                                        MEDIA_DATA_DB_IS_FAV + " BOOL DEFAULT 0, " +
294                                        MEDIA_DATA_DB_OWNER_PACKAGE + " TEXT, " +
295                                        MEDIA_DATA_DB_PACKAGE_NAME + " TEXT, " +
296                                        MEDIA_DATA_DB_DEVICE_NAME + " TEXT, " +
297                                        MEDIA_DATA_DB_IS_PENDING + " BOOL DEFAULT 0, " +
298                                        MEDIA_DATA_DB_TIME_PENDING + " BIGINT DEFAULT 0, " +
299                                        MEDIA_DATA_DB_DATE_TRASHED + " BIGINT DEFAULT 0, " +
300                                        MEDIA_DATA_DB_RELATIVE_PATH + " TEXT, " +
301                                        MEDIA_DATA_DB_VOLUME_NAME + " TEXT, " +
302                                        MEDIA_DATA_DB_SELF_ID + " TEXT DEFAULT '1', " +
303                                        MEDIA_DATA_DB_ALBUM_NAME + " TEXT, " +
304                                        MEDIA_DATA_DB_URI + " TEXT, " +
305                                        MEDIA_DATA_DB_ALBUM + " TEXT, " +
306                                        MEDIA_DATA_DB_CLOUD_ID + " TEXT, " +
307                                        MEDIA_DATA_DB_DIRTY + " INT DEFAULT 1, " +
308                                        MEDIA_DATA_DB_POSITION + " INT DEFAULT 1, " +
309                                        MEDIA_DATA_DB_META_DATE_MODIFIED + "  BIGINT DEFAULT 0, " +
310                                        MEDIA_DATA_DB_SYNC_STATUS + " INT DEFAULT 0)";
311 
312 const std::string CREATE_BUNDLE_PREMISSION_TABLE = "CREATE TABLE IF NOT EXISTS " +
313                                       BUNDLE_PERMISSION_TABLE + " (" +
314                                       PERMISSION_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
315                                       PERMISSION_BUNDLE_NAME + " TEXT NOT NULL, " +
316                                       PERMISSION_FILE_ID + " INT NOT NULL, " +
317                                       PERMISSION_MODE + " TEXT NOT NULL, " +
318                                       PERMISSION_TABLE_TYPE + " INT )";
319 
320 const std::string CREATE_IMAGE_VIEW = "CREATE VIEW IF NOT EXISTS Image AS SELECT " +
321                                       MEDIA_DATA_DB_ID + ", " +
322                                       MEDIA_DATA_DB_FILE_PATH + ", " +
323                                       MEDIA_DATA_DB_SIZE + ", " +
324                                       MEDIA_DATA_DB_NAME + ", " +
325                                       MEDIA_DATA_DB_TITLE + ", " +
326                                       MEDIA_DATA_DB_DESCRIPTION + ", " +
327                                       MEDIA_DATA_DB_DATE_ADDED + ", " +
328                                       MEDIA_DATA_DB_DATE_MODIFIED + ", " +
329                                       MEDIA_DATA_DB_DATE_TAKEN + ", " +
330                                       MEDIA_DATA_DB_MIME_TYPE + ", " +
331                                       MEDIA_DATA_DB_LATITUDE + ", " +
332                                       MEDIA_DATA_DB_LONGITUDE + ", " +
333                                       MEDIA_DATA_DB_ORIENTATION + ", " +
334                                       MEDIA_DATA_DB_WIDTH + ", " +
335                                       MEDIA_DATA_DB_HEIGHT + ", " +
336                                       MEDIA_DATA_DB_BUCKET_ID + ", " +
337                                       MEDIA_DATA_DB_BUCKET_NAME + ", " +
338                                       MEDIA_DATA_DB_THUMBNAIL + ", " +
339                                       MEDIA_DATA_DB_LCD + ", " +
340                                       MEDIA_DATA_DB_SELF_ID + " " +
341                                       "FROM " + MEDIALIBRARY_TABLE + " WHERE " +
342                                       MEDIA_DATA_DB_MEDIA_TYPE + " = 3";
343 
344 const std::string CREATE_VIDEO_VIEW = "CREATE VIEW IF NOT EXISTS Video AS SELECT " +
345                                       MEDIA_DATA_DB_ID + ", " +
346                                       MEDIA_DATA_DB_FILE_PATH + ", " +
347                                       MEDIA_DATA_DB_SIZE + ", " +
348                                       MEDIA_DATA_DB_NAME + ", " +
349                                       MEDIA_DATA_DB_TITLE + ", " +
350                                       MEDIA_DATA_DB_DESCRIPTION + ", " +
351                                       MEDIA_DATA_DB_DATE_ADDED + ", " +
352                                       MEDIA_DATA_DB_DATE_MODIFIED + ", " +
353                                       MEDIA_DATA_DB_MIME_TYPE + ", " +
354                                       MEDIA_DATA_DB_ORIENTATION + ", " +
355                                       MEDIA_DATA_DB_WIDTH + ", " +
356                                       MEDIA_DATA_DB_HEIGHT + ", " +
357                                       MEDIA_DATA_DB_DURATION + ", " +
358                                       MEDIA_DATA_DB_BUCKET_ID + ", " +
359                                       MEDIA_DATA_DB_BUCKET_NAME + ", " +
360                                       MEDIA_DATA_DB_THUMBNAIL + ", " +
361                                       MEDIA_DATA_DB_SELF_ID + " " +
362                                       "FROM " + MEDIALIBRARY_TABLE + " WHERE " +
363                                       MEDIA_DATA_DB_MEDIA_TYPE + " = 4";
364 
365 const std::string CREATE_AUDIO_VIEW = "CREATE VIEW IF NOT EXISTS Audio AS SELECT " +
366                                       MEDIA_DATA_DB_ID + ", " +
367                                       MEDIA_DATA_DB_FILE_PATH + ", " +
368                                       MEDIA_DATA_DB_SIZE + ", " +
369                                       MEDIA_DATA_DB_NAME + ", " +
370                                       MEDIA_DATA_DB_TITLE + ", " +
371                                       MEDIA_DATA_DB_DESCRIPTION + ", " +
372                                       MEDIA_DATA_DB_DATE_ADDED + ", " +
373                                       MEDIA_DATA_DB_DATE_MODIFIED + ", " +
374                                       MEDIA_DATA_DB_MIME_TYPE + ", " +
375                                       MEDIA_DATA_DB_ARTIST + ", " +
376                                       MEDIA_DATA_DB_DURATION + ", " +
377                                       MEDIA_DATA_DB_BUCKET_ID + ", " +
378                                       MEDIA_DATA_DB_BUCKET_NAME + ", " +
379                                       MEDIA_DATA_DB_THUMBNAIL + ", " +
380                                       MEDIA_DATA_DB_SELF_ID + " " +
381                                       "FROM " + MEDIALIBRARY_TABLE + " WHERE " +
382                                       MEDIA_DATA_DB_MEDIA_TYPE + " = 5";
383 
384 const std::string REMOTE_THUMBNAIL_TABLE = "RemoteThumbnailMap";
385 const std::string REMOTE_THUMBNAIL_DB_ID = "id";
386 const std::string REMOTE_THUMBNAIL_DB_FILE_ID = MEDIA_DATA_DB_ID;
387 const std::string REMOTE_THUMBNAIL_DB_UDID = "udid";
388 const std::string CREATE_REMOTE_THUMBNAIL_TABLE = "CREATE TABLE IF NOT EXISTS " + REMOTE_THUMBNAIL_TABLE + " (" +
389                                             REMOTE_THUMBNAIL_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
390                                             REMOTE_THUMBNAIL_DB_FILE_ID + " INT, " +
391                                             REMOTE_THUMBNAIL_DB_UDID + " TEXT, " +
392                                             MEDIA_DATA_DB_THUMBNAIL + " TEXT, " +
393                                             MEDIA_DATA_DB_LCD + " TEXT) ";
394 const std::string FILE_TABLE = "file";
395 const std::string ALBUM_TABLE = "album";
396 const std::string ALBUM_VIEW_NAME = "Album";
397 const std::string DISTRIBUTED_ALBUM_COLUMNS = "SELECT count( " + FILE_TABLE + "." +
398                                               MEDIA_DATA_DB_DATE_TRASHED + " = 0 OR NULL) AS " +
399                                               MEDIA_DATA_DB_COUNT + ", " +
400                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_RELATIVE_PATH + ", " +
401                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_ID + " AS " +
402                                               MEDIA_DATA_DB_BUCKET_ID + ", " +
403                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_FILE_PATH + ", " +
404                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_TITLE + " AS " +
405                                               MEDIA_DATA_DB_BUCKET_NAME + ", " +
406                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_TITLE + ", " +
407                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_DESCRIPTION + ", " +
408                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_DATE_ADDED + ", " +
409                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_DATE_MODIFIED + ", " +
410                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_THUMBNAIL + ", " +
411                                               FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + ", " +
412                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_SELF_ID + ", " +
413                                               ALBUM_TABLE + "." + MEDIA_DATA_DB_IS_TRASH;
414 const std::string DISTRIBUTED_ALBUM_WHERE_AND_GROUPBY = " WHERE " +
415                                                         FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_ID + " = " +
416                                                         ALBUM_TABLE + "." + MEDIA_DATA_DB_ID + " AND " +
417                                                         FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + " <> " +
418                                                         std::to_string(MEDIA_TYPE_ALBUM) + " AND " +
419                                                         FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + " <> " +
420                                                         std::to_string(MEDIA_TYPE_FILE) +
421                                                         " GROUP BY " +
422                                                         FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_ID +", " +
423                                                         FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_NAME + ", " +
424                                                         FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + ", " +
425                                                         ALBUM_TABLE + "." + MEDIA_DATA_DB_SELF_ID;
426 const std::string CREATE_ALBUM_VIEW = "CREATE VIEW IF NOT EXISTS " + ALBUM_VIEW_NAME +
427                                       " AS " + DISTRIBUTED_ALBUM_COLUMNS +
428                                       " FROM " + MEDIALIBRARY_TABLE + " " + FILE_TABLE + ", " +
429                                       MEDIALIBRARY_TABLE + " " + ALBUM_TABLE +
430                                       DISTRIBUTED_ALBUM_WHERE_AND_GROUPBY;
431 const std::string SMARTALBUM_DB_ID = "album_id";
432 const std::string SMARTALBUM_DB_ALBUM_TYPE = "album_type";
433 const std::string SMARTALBUM_DB_NAME = "album_name";
434 const std::string SMARTALBUM_DB_DESCRIPTION = "description";
435 const std::string SMARTALBUM_DB_CAPACITY = "capacity";
436 const std::string SMARTALBUM_DB_LATITUDE = "latitude";
437 const std::string SMARTALBUM_DB_LONGITUDE = "longitude";
438 const std::string SMARTALBUM_DB_COVER_URI = "cover_uri";
439 const std::string SMARTALBUM_DB_EXPIRED_TIME = "expired_id";
440 const std::string SMARTALBUM_DB_SELF_ID = "self_id";
441 const std::string CREATE_SMARTALBUM_TABLE = "CREATE TABLE IF NOT EXISTS " + SMARTALBUM_TABLE + " (" +
442                                             SMARTALBUM_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
443                                             SMARTALBUM_DB_NAME + " TEXT, " +
444                                             SMARTALBUM_DB_DESCRIPTION + " TEXT, " +
445                                             SMARTALBUM_DB_ALBUM_TYPE + " INT, " +
446                                             SMARTALBUM_DB_CAPACITY + " INT, " +
447                                             SMARTALBUM_DB_LATITUDE + " DOUBLE DEFAULT 0, " +
448                                             SMARTALBUM_DB_LONGITUDE + " DOUBLE DEFAULT 0, " +
449                                             SMARTALBUM_DB_COVER_URI + " TEXT, " +
450                                             SMARTALBUM_DB_EXPIRED_TIME + " INT DEFAULT 30, " +
451                                             SMARTALBUM_DB_SELF_ID + " TEXT) ";
452 
453 const std::string SMARTALBUMMAP_DB_ID = "map_id";
454 const std::string SMARTALBUMMAP_DB_ALBUM_ID = "album_id";
455 const std::string SMARTALBUMMAP_DB_CHILD_ALBUM_ID = "child_album_id";
456 const std::string SMARTALBUMMAP_DB_CHILD_ASSET_ID = "child_asset_id";
457 const std::string SMARTALBUMMAP_DB_SELF_ID = "self_id";
458 const std::string CREATE_SMARTALBUMMAP_TABLE = "CREATE TABLE IF NOT EXISTS " + SMARTALBUM_MAP_TABLE + " (" +
459                                             SMARTALBUMMAP_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
460                                             SMARTALBUMMAP_DB_ALBUM_ID + " INT, " +
461                                             SMARTALBUMMAP_DB_CHILD_ALBUM_ID + " INT, " +
462                                             SMARTALBUMMAP_DB_CHILD_ASSET_ID + " INT, " +
463                                             SMARTALBUMMAP_DB_SELF_ID + " TEXT) ";
464 const std::string CATEGORY_SMARTALBUMMAP_DB_ID = "category_map_id";
465 const std::string CATEGORY_SMARTALBUMMAP_DB_CATEGORY_ID = "category_id";
466 const std::string CATEGORY_SMARTALBUMMAP_DB_CATEGORY_NAME = "category_name";
467 const std::string CATEGORY_SMARTALBUMMAP_DB_ALBUM_ID = "album_id";
468 const std::string CATEGORY_SMARTALBUMMAP_DB_SELF_ID = "self_id";
469 const std::string CREATE_CATEGORY_SMARTALBUMMAP_TABLE = "CREATE TABLE IF NOT EXISTS " +
470                                             CATEGORY_SMARTALBUM_MAP_TABLE + " (" +
471                                             CATEGORY_SMARTALBUMMAP_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
472                                             CATEGORY_SMARTALBUMMAP_DB_CATEGORY_ID + " INT, " +
473                                             CATEGORY_SMARTALBUMMAP_DB_CATEGORY_NAME + " TEXT, " +
474                                             CATEGORY_SMARTALBUMMAP_DB_ALBUM_ID + " INT, " +
475                                             SMARTALBUMMAP_DB_SELF_ID + " TEXT) ";
476 const std::string DIRECTORY_DB_DIRECTORY_TYPE = "directory_type";
477 const std::string DIRECTORY_DB_MEDIA_TYPE = "media_type";
478 const std::string DIRECTORY_DB_DIRECTORY = "directory";
479 const std::string DIRECTORY_DB_EXTENSION = "extension";
480 const std::string CREATE_MEDIATYPE_DIRECTORY_TABLE = "CREATE TABLE IF NOT EXISTS " +
481                                             MEDIATYPE_DIRECTORY_TABLE + " (" +
482                                             DIRECTORY_DB_DIRECTORY_TYPE + " INTEGER PRIMARY KEY, " +
483                                             DIRECTORY_DB_MEDIA_TYPE + " TEXT, " +
484                                             DIRECTORY_DB_DIRECTORY + " TEXT, " +
485                                             DIRECTORY_DB_EXTENSION + " TEXT) ";
486 
487 const std::string DEVICE_DB_ID = "id";
488 const std::string DEVICE_DB_UDID = "device_udid";
489 const std::string DEVICE_DB_NETWORK_ID = "network_id";
490 const std::string DEVICE_DB_NAME = "device_name";
491 const std::string DEVICE_DB_IP = "device_ip";
492 const std::string DEVICE_DB_SYNC_STATUS = "sync_status";
493 const std::string DEVICE_DB_PHOTO_SYNC_STATUS = "photo_table_sync_status";
494 const std::string DEVICE_DB_SELF_ID = "self_id";
495 const std::string DEVICE_DB_TYPE = "device_type";
496 const std::string DEVICE_DB_PREPATH = "pre_path";
497 const std::string DEVICE_DB_DATE_ADDED = "date_added";
498 const std::string DEVICE_DB_DATE_MODIFIED = "date_modified";
499 const std::string CREATE_DEVICE_TABLE = "CREATE TABLE IF NOT EXISTS " + DEVICE_TABLE + " (" +
500                                             DEVICE_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
501                                             DEVICE_DB_UDID + " TEXT, " +
502                                             DEVICE_DB_NETWORK_ID + " TEXT, " +
503                                             DEVICE_DB_NAME + " TEXT, " +
504                                             DEVICE_DB_IP + " TEXT DEFAULT '', " +
505                                             DEVICE_DB_SYNC_STATUS + " INT DEFAULT 0, " +
506                                             DEVICE_DB_PHOTO_SYNC_STATUS + " INT DEFAULT 0, " +
507                                             DEVICE_DB_SELF_ID + " TEXT, " +
508                                             DEVICE_DB_TYPE + " INT, " +
509                                             DEVICE_DB_PREPATH + " TEXT, " +
510                                             DEVICE_DB_DATE_ADDED + " BIGINT DEFAULT 0, " +
511                                             DEVICE_DB_DATE_MODIFIED + " BIGINT DEFAULT 0) ";
512 const std::string SMARTALBUM_TABLE_NAME = "smartalbum";
513 const std::string SMARTALBUMMAP_TABLE_NAME = "smartAlbumMap";
514 const std::string CATEGORY_SMARTALBUMMAP_TABLE_NAME = "categorySmartAlbumMap";
515 const std::string SMARTALBUMASSETS_VIEW_NAME = "SmartAsset";
516 const std::string SMARTALBUMASSETS_ALBUMCAPACITY = "size";
517 const std::string SMARTABLUMASSETS_PARENTID = "parentid";
518 const std::string CREATE_SMARTALBUMASSETS_VIEW = "CREATE VIEW IF NOT EXISTS " + SMARTALBUMASSETS_VIEW_NAME +
519                         " AS SELECT COUNT(" +
520                         MEDIALIBRARY_TABLE + "."+ MEDIA_DATA_DB_DATE_TRASHED + " = 0 OR (" +
521                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + " = " +
522                         std::to_string(TRASH_ALBUM_ID_VALUES) + " AND " +
523                         MEDIALIBRARY_TABLE + "."+ MEDIA_DATA_DB_IS_TRASH + "<> 0)" +
524                         " OR NULL ) AS " + SMARTALBUMASSETS_ALBUMCAPACITY + ", " +
525                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + ", " +
526                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_NAME + ", " +
527                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_SELF_ID + ", " +
528                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_DESCRIPTION + ", " +
529                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_EXPIRED_TIME + ", " +
530                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_COVER_URI + ", " +
531                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ALBUM_TYPE + ", " +
532                         SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ID + ", " +
533                         "a." + SMARTALBUMMAP_DB_ALBUM_ID + " AS " + SMARTABLUMASSETS_PARENTID +
534                         " FROM " + SMARTALBUM_TABLE + " " + SMARTALBUM_TABLE_NAME +
535                         " LEFT JOIN " + SMARTALBUM_MAP_TABLE +
536                         " ON " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ALBUM_ID + " = " +
537                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID +
538                         " LEFT JOIN " + MEDIALIBRARY_TABLE +
539                         " ON " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_CHILD_ASSET_ID + " = " +
540                         MEDIALIBRARY_TABLE + "." + MEDIA_DATA_DB_ID +
541                         " LEFT JOIN " + SMARTALBUM_MAP_TABLE + " a " +
542                         " ON a." + SMARTALBUMMAP_DB_CHILD_ALBUM_ID + " = " +
543                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID +
544                         " GROUP BY IFNULL( " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ALBUM_ID + ", " +
545                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + " ), " +
546                         SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_SELF_ID;
547 const std::string ASSETMAP_VIEW_NAME = "AssetMap";
548 const std::string CREATE_ASSETMAP_VIEW = "CREATE VIEW IF NOT EXISTS " + ASSETMAP_VIEW_NAME +
549                         " AS SELECT * FROM " +
550                         MEDIALIBRARY_TABLE + " a " + ", " +
551                         SMARTALBUM_MAP_TABLE + " b " +
552                         " WHERE " +
553                         "a." + MEDIA_DATA_DB_ID + " = " +
554                         "b." + SMARTALBUMMAP_DB_CHILD_ASSET_ID;
555 
556 const std::string QUERY_MEDIA_VOLUME = "SELECT sum(" + MEDIA_DATA_DB_SIZE + ") AS " +
557                         MEDIA_DATA_DB_SIZE + "," +
558                         MEDIA_DATA_DB_MEDIA_TYPE + " FROM " +
559                         MEDIALIBRARY_TABLE + " WHERE " +
560                         MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_FILE) + " OR " +
561                         MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_IMAGE) + " OR " +
562                         MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_VIDEO) + " OR " +
563                         MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_ALBUM) + " OR " +
564                         MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_AUDIO) + " GROUP BY " +
565                         MEDIA_DATA_DB_MEDIA_TYPE;
566 
567 const std::string CREATE_FILES_DELETE_TRIGGER = "CREATE TRIGGER delete_trigger AFTER UPDATE ON " +
568                         MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN new.dirty = " +
569                         std::to_string(static_cast<int32_t>(DirtyType::TYPE_DELETED)) +
570                         " and OLD.cloud_id is NULL AND is_caller_self_func() = 'true'" +
571                         " BEGIN " +
572                         " DELETE FROM " + MEDIALIBRARY_TABLE + " WHERE file_id = old.file_id;" +
573                         " END;";
574 
575 const std::string CREATE_FILES_FDIRTY_TRIGGER = "CREATE TRIGGER fdirty_trigger AFTER UPDATE ON " +
576                         MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN OLD.cloud_id IS NOT NULL AND" +
577                         " new.date_modified <> old.date_modified AND is_caller_self_func() = 'true'" +
578                         " BEGIN " +
579                         " UPDATE " + MEDIALIBRARY_TABLE + " SET dirty = " +
580                         std::to_string(static_cast<int32_t>(DirtyType::TYPE_FDIRTY)) +
581                         " WHERE file_id = old.file_id;" +
582                         " SELECT cloud_sync_func(); " +
583                         " END;";
584 
585 const std::string CREATE_FILES_MDIRTY_TRIGGER = "CREATE TRIGGER mdirty_trigger AFTER UPDATE ON " +
586                         MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN OLD.cloud_id IS NOT NULL" +
587                         " AND new.date_modified = old.date_modified AND old.dirty = " +
588                         std::to_string(static_cast<int32_t>(DirtyType::TYPE_SYNCED)) +
589                         " AND new.dirty = old.dirty AND is_caller_self_func() = 'true'" +
590                         " BEGIN " +
591                         " UPDATE " + MEDIALIBRARY_TABLE + " SET dirty = " +
592                         std::to_string(static_cast<int32_t>(DirtyType::TYPE_MDIRTY)) +
593                         " WHERE file_id = old.file_id;" +
594                         " SELECT cloud_sync_func(); " +
595                         " END;";
596 
597 const std::string CREATE_INSERT_CLOUD_SYNC_TRIGGER =
598                         " CREATE TRIGGER insert_cloud_sync_trigger AFTER INSERT ON " + MEDIALIBRARY_TABLE +
599                         " BEGIN SELECT cloud_sync_func(); END;";
600 
601 /*
602  * Error Table
603  */
604 const std::string MEDIALIBRARY_ERROR_TABLE = "Error";
605 const std::string MEDIA_DATA_ERROR = "err";
606 const std::string CREATE_MEDIALIBRARY_ERROR_TABLE = "CREATE TABLE IF NOT EXISTS " + MEDIALIBRARY_ERROR_TABLE + " ("
607     + MEDIA_DATA_ERROR + " TEXT PRIMARY KEY)";
608 
609 /*
610  * Media Unique Number Table
611  */
612 const std::string ASSET_UNIQUE_NUMBER_TABLE = "UniqueNumber";
613 const std::string ASSET_MEDIA_TYPE = "media_type";
614 const std::string UNIQUE_NUMBER = "unique_number";
615 const std::string CREATE_ASSET_UNIQUE_NUMBER_TABLE = "CREATE TABLE IF NOT EXISTS " + ASSET_UNIQUE_NUMBER_TABLE + " (" +
616     ASSET_MEDIA_TYPE + " TEXT, " + UNIQUE_NUMBER + " INT DEFAULT 0) ";
617 
618 const std::string IMAGE_ASSET_TYPE = "image";
619 const std::string VIDEO_ASSET_TYPE = "video";
620 const std::string AUDIO_ASSET_TYPE = "audio";
621 
622 /*
623  * Album Refresh Table
624  */
625 const std::string ALBUM_REFRESH_TABLE = "RefreshAlbum";
626 const std::string REFRESHED_ALBUM_ID = "refresh_album_id";
627 const std::string CREATE_ALBUM_REFRESH_TABLE = "CREATE TABLE IF NOT EXISTS " + ALBUM_REFRESH_TABLE + " ("
628     + REFRESHED_ALBUM_ID + " INT PRIMARY KEY)";
629 
630 // fetch columns from fileAsset in medialibrary.d.ts
631 static const std::vector<std::string> FILE_ASSET_COLUMNS = {
632     MEDIA_DATA_DB_ID, MEDIA_DATA_DB_FILE_PATH, MEDIA_DATA_DB_URI, MEDIA_DATA_DB_MIME_TYPE, MEDIA_DATA_DB_MEDIA_TYPE,
633     MEDIA_DATA_DB_NAME, MEDIA_DATA_DB_TITLE, MEDIA_DATA_DB_RELATIVE_PATH, MEDIA_DATA_DB_PARENT_ID, MEDIA_DATA_DB_SIZE,
634     MEDIA_DATA_DB_DATE_ADDED, MEDIA_DATA_DB_DATE_MODIFIED, MEDIA_DATA_DB_DATE_TAKEN, MEDIA_DATA_DB_ARTIST,
635     MEDIA_DATA_DB_WIDTH, MEDIA_DATA_DB_HEIGHT, MEDIA_DATA_DB_ORIENTATION, MEDIA_DATA_DB_DURATION,
636     MEDIA_DATA_DB_BUCKET_ID, MEDIA_DATA_DB_BUCKET_NAME, MEDIA_DATA_DB_IS_TRASH, MEDIA_DATA_DB_IS_FAV,
637     MEDIA_DATA_DB_DATE_TRASHED
638 };
639 
640 const std::string EMPTY_COLUMN_AS = "'' AS ";
641 const std::string DEFAULT_INT_COLUMN_AS = "0 AS ";
642 const std::string COMPAT_COLUMN_ARTIST = EMPTY_COLUMN_AS + MEDIA_DATA_DB_ARTIST;
643 const std::string COMPAT_COLUMN_AUDIO_ALBUM = EMPTY_COLUMN_AS + MEDIA_DATA_DB_AUDIO_ALBUM;
644 const std::string COMPAT_COLUMN_ORIENTATION = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_ORIENTATION;
645 const std::string COMPAT_COLUMN_BUCKET_ID = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_BUCKET_ID;
646 const std::string COMPAT_COLUMN_BUCKET_NAME = EMPTY_COLUMN_AS + MEDIA_DATA_DB_BUCKET_NAME;
647 const std::string COMPAT_COLUMN_IS_TRASH = MEDIA_DATA_DB_DATE_TRASHED + " AS " + MEDIA_DATA_DB_IS_TRASH;
648 const std::string COMPAT_COLUMN_WIDTH = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_WIDTH;
649 const std::string COMPAT_COLUMN_HEIGHT = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_HEIGHT;
650 const std::string COMPAT_COLUMN_URI = EMPTY_COLUMN_AS + MEDIA_DATA_DB_URI;
651 
652 // Caution: Keep same definition as MediaColumn! Only for where clause check in API9 getAlbums and album.getFileAssets
653 const std::string COMPAT_ALBUM_SUBTYPE = "album_subtype";
654 const std::string COMPAT_HIDDEN = "hidden";
655 const std::string COMPAT_PHOTO_SYNC_STATUS = "sync_status";
656 const std::string COMPAT_FILE_SUBTYPE = "subtype";
657 const std::string COMPAT_CAMERA_SHOT_KEY = "camera_shot_key";
658 
659 // system relativePath and albumName, use for API9 compatible API10
660 const std::string CAMERA_PATH = "Camera/";
661 const std::string SCREEN_SHOT_PATH = "Pictures/Screenshots/";
662 const std::string SCREEN_RECORD_PATH = "Videos/ScreenRecordings/";
663 
664 const std::string CAMERA_ALBUM_NAME = "Camera";
665 const std::string SCREEN_SHOT_ALBUM_NAME = "Screenshots";
666 const std::string SCREEN_RECORD_ALBUM_NAME = "ScreenRecordings";
667 
668 // extension
669 const std::string ASSET_EXTENTION = "extention";
670 
671 // delete_tool
672 const std::string DELETE_TOOL_ONLY_DATABASE = "only_db";
673 
674 // edit param
675 const std::string EDIT_DATA_REQUEST = "edit_data_request";  // MEDIA_OPERN_KEYWORD=EDIT_DATA_REQUEST
676 const std::string SOURCE_REQUEST = "source_request";        // MEDIA_OPERN_KEYWORD=SOURCE_REQUEST
677 const std::string COMMIT_REQUEST = "commit_request";        // MEDIA_OPERN_KEYWORD=COMMIT_REQUEST
678 const std::string EDIT_DATA = "edit_data";
679 const std::string COMPATIBLE_FORMAT = "compatible_format";
680 const std::string FORMAT_VERSION = "format_version";
681 const std::string APP_ID = "app_id";
682 
683 // write cache
684 const std::string CACHE_FILE_NAME = "cache_file_name";
685 } // namespace Media
686 } // namespace OHOS
687 
688 #endif  // INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_
689