• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 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 BACKUP_CONST_COLUMN_H
17 #define BACKUP_CONST_COLUMN_H
18 
19 #include "backup_const.h"
20 #include "media_smart_album_column.h"
21 
22 namespace OHOS {
23 namespace Media {
24 const int32_t IS_LOCAL_TRUE = 1;
25 const int32_t RENAME_OPERATION_RENAMED = 1;
26 const std::string DEFAULT_BACKUP_VERSION = "backup1.0";
27 const std::string GALLERY_TABLE_MERGE_FACE = "merge_face";
28 const std::string GALLERY_TABLE_MERGE_TAG = "merge_tag";
29 const std::string GALLERY_TABLE_MEDIA = "gallery_media";
30 const std::string GALLERY_TABLE_FACE = "face";
31 const std::string GALLERY_TAG_ID = "tag_id";
32 const std::string GALLERY_FACE_ID = "face_id";
33 const std::string GALLERY_GROUP_TAG = "merge_tag.group_tag";
34 const std::string GALLERY_TAG_NAME = "merge_tag.tag_name";
35 const std::string GALLERY_USER_OPERATION = "merge_tag.user_operation";
36 const std::string GALLERY_RENAME_OPERATION = "merge_tag.rename_operation";
37 const std::string GALLERY_SCALE_X = "merge_face.scale_x";
38 const std::string GALLERY_SCALE_Y = "merge_face.scale_y";
39 const std::string GALLERY_SCALE_WIDTH = "merge_face.scale_width";
40 const std::string GALLERY_SCALE_HEIGHT = "merge_face.scale_height";
41 const std::string GALLERY_PITCH = "merge_face.pitch";
42 const std::string GALLERY_YAW = "merge_face.yaw";
43 const std::string GALLERY_ROLL = "merge_face.roll";
44 const std::string GALLERY_PROB = "merge_face.prob";
45 const std::string GALLERY_TOTAL_FACE = "merge_face.total_face";
46 const std::string GALLERY_MERGE_FACE_HASH = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_HASH;
47 const std::string GALLERY_MERGE_FACE_TAG_ID = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_TAG_ID;
48 const std::string GALLERY_MERGE_TAG_TAG_ID = GALLERY_TABLE_MERGE_TAG + "." + GALLERY_TAG_ID;
49 const std::string GALLERY_MEDIA_ID = GALLERY_TABLE_MEDIA + "." + GALLERY_ID;
50 const std::string GALLERY_MEDIA_HASH = GALLERY_TABLE_MEDIA + "." + GALLERY_HASH;
51 const std::string GALLERY_FACE_HASH = GALLERY_TABLE_FACE + "." + GALLERY_HASH;
52 const std::string GALLERY_MERGE_FACE_FACE_ID = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_FACE_ID;
53 const std::string GALLERY_FACE_FACE_ID = GALLERY_TABLE_FACE + "." + GALLERY_FACE_ID;
54 const std::string E_VERSION = "-1";
55 const std::string TAG_ID_PREFIX = "ser_";
56 const std::string TAG_ID_UNPROCESSED = "-1";
57 
58 /* AnalysisAlbum TBL COL_NAME */
59 const std::string ANALYSIS_COL_ALBUM_ID = "album_id";
60 const std::string ANALYSIS_COL_ALBUM_TYPE = "album_type";
61 const std::string ANALYSIS_COL_ALBUM_SUBTYPE = "album_subtype";
62 const std::string ANALYSIS_COL_ALBUM_NAME = "album_name";
63 const std::string ANALYSIS_COL_COVER_URI = "cover_uri";
64 const std::string ANALYSIS_COL_COUNT = "count";
65 const std::string ANALYSIS_COL_DATE_MODIFIED = "date_modified";
66 const std::string ANALYSIS_COL_RANK = "rank";
67 const std::string ANALYSIS_COL_TAG_ID = "tag_id";
68 const std::string ANALYSIS_COL_USER_OPERATION = "user_operation";
69 const std::string ANALYSIS_COL_GROUP_TAG = "group_tag";
70 const std::string ANALYSIS_COL_USER_DISPLAY_LEVEL = "user_display_level";
71 const std::string ANALYSIS_COL_IS_ME = "is_me";
72 const std::string ANALYSIS_COL_IS_REMOVED = "is_removed";
73 const std::string ANALYSIS_COL_RENAME_OPERATION = "rename_operation";
74 const std::string ANALYSIS_COL_IS_LOCAL = "is_local";
75 const std::string ANALYSIS_COL_IS_COVER_SATISFIED = "is_cover_satisfied";
76 
77 /* FaceTag TBL COL_NAME */
78 const std::string FACE_TAG_COL_ID = "id";
79 const std::string FACE_TAG_COL_TAG_ID = "tag_id";
80 const std::string FACE_TAG_COL_TAG_NAME = "tag_name";
81 const std::string FACE_TAG_COL_USER_OPERATION = "user_operation";
82 const std::string FACE_TAG_COL_GROUP_TAG = "group_tag";
83 const std::string FACE_TAG_COL_RENAME_OPERATION = "rename_operation";
84 const std::string FACE_TAG_COL_CENTER_FEATURES = "center_features";
85 const std::string FACE_TAG_COL_TAG_VERSION = "tag_version";
86 const std::string FACE_TAG_COL_USER_DISPLAY_LEVEL = "user_display_level";
87 const std::string FACE_TAG_COL_TAG_ORDER = "tag_order";
88 const std::string FACE_TAG_COL_IS_ME = "is_me";
89 const std::string FACE_TAG_COL_COVER_URI = "cover_uri";
90 const std::string FACE_TAG_COL_COUNT = "count";
91 const std::string FACE_TAG_COL_DATE_MODIFY = "date_modify";
92 const std::string FACE_TAG_COL_ALBUM_TYPE = "album_type";
93 const std::string FACE_TAG_COL_IS_REMOVED = "is_removed";
94 const std::string FACE_TAG_COL_ANALYSIS_VERSION = "analysis_version";
95 
96 // image_face_tbl COL_NAME
97 const std::string IMAGE_FACE_COL_ID = "id";
98 const std::string IMAGE_FACE_COL_FILE_ID = "file_id";
99 const std::string IMAGE_FACE_COL_FACE_ID = "face_id";
100 const std::string IMAGE_FACE_COL_TAG_ID = "tag_id";
101 const std::string IMAGE_FACE_COL_SCALE_X = "scale_x";
102 const std::string IMAGE_FACE_COL_SCALE_Y = "scale_y";
103 const std::string IMAGE_FACE_COL_SCALE_WIDTH = "scale_width";
104 const std::string IMAGE_FACE_COL_SCALE_HEIGHT = "scale_height";
105 const std::string IMAGE_FACE_COL_LANDMARKS = "landmarks";
106 const std::string IMAGE_FACE_COL_PITCH = "pitch";
107 const std::string IMAGE_FACE_COL_YAW = "yaw";
108 const std::string IMAGE_FACE_COL_ROLL = "roll";
109 const std::string IMAGE_FACE_COL_PROB = "prob";
110 const std::string IMAGE_FACE_COL_TOTAL_FACES = "total_faces";
111 const std::string IMAGE_FACE_COL_FACE_VERSION = "face_version";
112 const std::string IMAGE_FACE_COL_FEATURES_VERSION = "features_version";
113 const std::string IMAGE_FACE_COL_FEATURES = "features";
114 const std::string IMAGE_FACE_COL_FACE_OCCLUSION = "face_occlusion";
115 const std::string IMAGE_FACE_COL_ANALYSIS_VERSION = "analysis_version";
116 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_X = "beauty_bounder_x";
117 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_Y = "beauty_bounder_y";
118 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_WIDTH = "beauty_bounder_width";
119 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_HEIGHT = "beauty_bounder_height";
120 const std::string IMAGE_FACE_COL_AESTHETICS_SCORE = "aesthetics_score";
121 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_VERSION = "beauty_bounder_version";
122 const std::string IMAGE_FACE_COL_IS_EXCLUDED = "is_excluded";
123 const std::string ANALYSIS_ALBUM_SUBTYPE = "album_subtype";
124 
125 const std::string QUERY_FACE_TAG_COUNT = "SELECT count(1) AS count FROM " + VISION_FACE_TAG_TABLE;
126 const std::string QUERY_IMAGE_FACE_COUNT = "SELECT count(1) AS count FROM " + VISION_IMAGE_FACE_TABLE;
127 const std::string CREATE_FACE_TAG_INDEX =
128     "CREATE INDEX IF NOT EXISTS face_clone_tag_index ON tab_analysis_face_tag (tag_id)";
129 
130 const std::string GALLERY_TAG_NAME_NOT_NULL_OR_EMPTY = GALLERY_TAG_NAME + " IS NOT NULL AND " + GALLERY_TAG_NAME +
131     " != ''";
132 const std::string GALLERY_TAG_WITH_PHOTOS = "EXISTS (SELECT 1 FROM " + GALLERY_TABLE_MERGE_FACE + " INNER JOIN \
133     gallery_media ON " + GALLERY_MERGE_FACE_HASH + " = gallery_media.hash WHERE " + LOCAL_PHOTOS_WHERE_CLAUSE +
134     " AND " + GALLERY_MERGE_FACE_TAG_ID + " = " + GALLERY_MERGE_TAG_TAG_ID + ")";
135 
136 const std::string GALLERY_TAG_WITH_CLOUD_PHOTOS = "EXISTS (SELECT 1 FROM " + GALLERY_TABLE_MERGE_FACE + " INNER JOIN \
137     gallery_media ON " + GALLERY_MERGE_FACE_HASH + " = gallery_media.hash WHERE " + ALL_PHOTOS_WHERE_CLAUSE + " AND " +
138     GALLERY_MERGE_FACE_TAG_ID + " = " + GALLERY_MERGE_TAG_TAG_ID + ")";
139 
140 const std::string GALLERY_PORTRAIT_ALBUM_TABLE = GALLERY_TABLE_MERGE_TAG + " WHERE " +
141     GALLERY_TAG_NAME_NOT_NULL_OR_EMPTY + " AND " + GALLERY_TAG_WITH_PHOTOS;
142 
143 const std::string GALLERY_PORTRAIT_ALBUM_TABLE_WITH_CLOUD = GALLERY_TABLE_MERGE_TAG + " WHERE " +
144     GALLERY_TAG_NAME_NOT_NULL_OR_EMPTY + " AND " + GALLERY_TAG_WITH_CLOUD_PHOTOS;
145 
146 const std::string QUERY_GALLERY_PORTRAIT_ALBUM_COUNT = "SELECT count(1) as count FROM " + GALLERY_PORTRAIT_ALBUM_TABLE;
147 
148 const std::string QUERY_GALLERY_PORTRAIT_ALBUM_WITH_CLOUD_COUNT = "SELECT count(1) as count FROM " +
149     GALLERY_PORTRAIT_ALBUM_TABLE_WITH_CLOUD;
150 
151 const std::string GALLERY_FACE_TABLE_JOIN_TAG = GALLERY_TABLE_MERGE_FACE + " INNER JOIN " + GALLERY_TABLE_MERGE_TAG +
152     " ON " + GALLERY_MERGE_FACE_TAG_ID + " = " + GALLERY_MERGE_TAG_TAG_ID + " INNER JOIN " + GALLERY_TABLE_MEDIA +
153     " ON " + GALLERY_MERGE_FACE_HASH + " = " + GALLERY_MEDIA_HASH + " GROUP BY " + GALLERY_MERGE_FACE_HASH + ", " +
154     GALLERY_FACE_ID;
155 
156 // Path related
157 const std::string INTERNAL_PREFIX = "/storage/emulated";
158 constexpr int32_t INTERNAL_PREFIX_LEVEL = 4;
159 const std::string APP_TWIN_DATA_PREFIX = "/AppTwinData";
160 const std::string CLONE_STAT_EDIT_DATA_DIR = "/storage/media/local/files/.editData/";
161 const std::string CLONE_STAT_RDB_DIR = "/data/storage/el2/database/rdb/";
162 const std::string CLONE_STAT_KVDB_DIR = "/data/storage/el2/database/kvdb/";
163 const std::string CLONE_STAT_HIGHLIGHT_DIR = "/storage/media/local/files/highlight/";
164 } // namespace Media
165 } // namespace OHOS
166 
167 #endif  // BACKUP_CONST_COLUMN_H