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 = "face.prob";
45 const std::string GALLERY_TOTAL_FACE = "merge_face.total_face";
46 const std::string GALLERY_LANDMARKS = "merge_face.landmarks";
47 const std::string GALLERY_MERGE_FACE_HASH = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_HASH;
48 const std::string GALLERY_MERGE_FACE_TAG_ID = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_TAG_ID;
49 const std::string GALLERY_MERGE_TAG_TAG_ID = GALLERY_TABLE_MERGE_TAG + "." + GALLERY_TAG_ID;
50 const std::string GALLERY_MEDIA_ID = GALLERY_TABLE_MEDIA + "." + GALLERY_ID;
51 const std::string GALLERY_MEDIA_HASH = GALLERY_TABLE_MEDIA + "." + GALLERY_HASH;
52 const std::string GALLERY_FACE_HASH = GALLERY_TABLE_FACE + "." + GALLERY_HASH;
53 const std::string GALLERY_MERGE_FACE_FACE_ID = GALLERY_TABLE_MERGE_FACE + "." + GALLERY_FACE_ID;
54 const std::string GALLERY_FACE_FACE_ID = GALLERY_TABLE_FACE + "." + GALLERY_FACE_ID;
55 const std::string E_VERSION = "-1";
56 const std::string TAG_ID_PREFIX = "ser_";
57 const std::string TAG_ID_UNPROCESSED = "-1";
58 
59 /* AnalysisAlbum TBL COL_NAME */
60 const std::string ANALYSIS_COL_ALBUM_ID = "album_id";
61 const std::string ANALYSIS_COL_ALBUM_TYPE = "album_type";
62 const std::string ANALYSIS_COL_ALBUM_SUBTYPE = "album_subtype";
63 const std::string ANALYSIS_COL_ALBUM_NAME = "album_name";
64 const std::string ANALYSIS_COL_COVER_URI = "cover_uri";
65 const std::string ANALYSIS_COL_COUNT = "count";
66 const std::string ANALYSIS_COL_DATE_MODIFIED = "date_modified";
67 const std::string ANALYSIS_COL_RANK = "rank";
68 const std::string ANALYSIS_COL_TAG_ID = "tag_id";
69 const std::string ANALYSIS_COL_USER_OPERATION = "user_operation";
70 const std::string ANALYSIS_COL_GROUP_TAG = "group_tag";
71 const std::string ANALYSIS_COL_USER_DISPLAY_LEVEL = "user_display_level";
72 const std::string ANALYSIS_COL_IS_ME = "is_me";
73 const std::string ANALYSIS_COL_IS_REMOVED = "is_removed";
74 const std::string ANALYSIS_COL_RENAME_OPERATION = "rename_operation";
75 const std::string ANALYSIS_COL_IS_LOCAL = "is_local";
76 const std::string ANALYSIS_COL_IS_COVER_SATISFIED = "is_cover_satisfied";
77 
78 /* FaceTag TBL COL_NAME */
79 const std::string FACE_TAG_COL_ID = "id";
80 const std::string FACE_TAG_COL_TAG_ID = "tag_id";
81 const std::string FACE_TAG_COL_TAG_NAME = "tag_name";
82 const std::string FACE_TAG_COL_USER_OPERATION = "user_operation";
83 const std::string FACE_TAG_COL_GROUP_TAG = "group_tag";
84 const std::string FACE_TAG_COL_RENAME_OPERATION = "rename_operation";
85 const std::string FACE_TAG_COL_CENTER_FEATURES = "center_features";
86 const std::string FACE_TAG_COL_TAG_VERSION = "tag_version";
87 const std::string FACE_TAG_COL_USER_DISPLAY_LEVEL = "user_display_level";
88 const std::string FACE_TAG_COL_TAG_ORDER = "tag_order";
89 const std::string FACE_TAG_COL_IS_ME = "is_me";
90 const std::string FACE_TAG_COL_COVER_URI = "cover_uri";
91 const std::string FACE_TAG_COL_COUNT = "count";
92 const std::string FACE_TAG_COL_DATE_MODIFY = "date_modify";
93 const std::string FACE_TAG_COL_ALBUM_TYPE = "album_type";
94 const std::string FACE_TAG_COL_IS_REMOVED = "is_removed";
95 const std::string FACE_TAG_COL_ANALYSIS_VERSION = "analysis_version";
96 
97 // image_face_tbl COL_NAME
98 const std::string IMAGE_FACE_COL_ID = "id";
99 const std::string IMAGE_FACE_COL_FILE_ID = "file_id";
100 const std::string IMAGE_FACE_COL_FACE_ID = "face_id";
101 const std::string IMAGE_FACE_COL_TAG_ID = "tag_id";
102 const std::string IMAGE_FACE_COL_SCALE_X = "scale_x";
103 const std::string IMAGE_FACE_COL_SCALE_Y = "scale_y";
104 const std::string IMAGE_FACE_COL_SCALE_WIDTH = "scale_width";
105 const std::string IMAGE_FACE_COL_SCALE_HEIGHT = "scale_height";
106 const std::string IMAGE_FACE_COL_LANDMARKS = "landmarks";
107 const std::string IMAGE_FACE_COL_PITCH = "pitch";
108 const std::string IMAGE_FACE_COL_YAW = "yaw";
109 const std::string IMAGE_FACE_COL_ROLL = "roll";
110 const std::string IMAGE_FACE_COL_PROB = "prob";
111 const std::string IMAGE_FACE_COL_TOTAL_FACES = "total_faces";
112 const std::string IMAGE_FACE_COL_FACE_VERSION = "face_version";
113 const std::string IMAGE_FACE_COL_FEATURES_VERSION = "features_version";
114 const std::string IMAGE_FACE_COL_FEATURES = "features";
115 const std::string IMAGE_FACE_COL_FACE_OCCLUSION = "face_occlusion";
116 const std::string IMAGE_FACE_COL_ANALYSIS_VERSION = "analysis_version";
117 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_X = "beauty_bounder_x";
118 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_Y = "beauty_bounder_y";
119 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_WIDTH = "beauty_bounder_width";
120 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_HEIGHT = "beauty_bounder_height";
121 const std::string IMAGE_FACE_COL_AESTHETICS_SCORE = "aesthetics_score";
122 const std::string IMAGE_FACE_COL_BEAUTY_BOUNDER_VERSION = "beauty_bounder_version";
123 const std::string IMAGE_FACE_COL_IS_EXCLUDED = "is_excluded";
124 const std::string ANALYSIS_ALBUM_SUBTYPE = "album_subtype";
125 
126 const std::string QUERY_FACE_TAG_COUNT = "SELECT count(1) AS count FROM " + VISION_FACE_TAG_TABLE;
127 const std::string QUERY_IMAGE_FACE_COUNT = "SELECT count(1) AS count FROM " + VISION_IMAGE_FACE_TABLE;
128 
129 const std::string GALLERY_TAG_NAME_NOT_NULL_OR_EMPTY = GALLERY_TAG_NAME + " IS NOT NULL AND " + GALLERY_TAG_NAME +
130     " != ''";
131 const std::string GALLERY_TAG_WITH_PHOTOS = "EXISTS (SELECT 1 FROM " + GALLERY_TABLE_MERGE_FACE + " INNER JOIN \
132     gallery_media ON " + GALLERY_MERGE_FACE_HASH + " = gallery_media.hash WHERE " + ALL_PHOTOS_WHERE_CLAUSE + " AND " +
133     GALLERY_MERGE_FACE_TAG_ID + " = " + GALLERY_MERGE_TAG_TAG_ID + " AND " + GALLERY_LANDMARKS + " != 0)";
134 const std::string GALLERY_PORTRAIT_ALBUM_TABLE = GALLERY_TABLE_MERGE_TAG + " WHERE " +
135     GALLERY_TAG_NAME_NOT_NULL_OR_EMPTY + " AND " + GALLERY_TAG_WITH_PHOTOS;
136 const std::string QUERY_GALLERY_PORTRAIT_ALBUM_COUNT = "SELECT count(1) as count FROM " + GALLERY_PORTRAIT_ALBUM_TABLE;
137 const std::string GALLERY_FACE_TABLE_JOIN_TAG = GALLERY_TABLE_MERGE_FACE + " INNER JOIN " + GALLERY_TABLE_MERGE_TAG +
138     " ON " + GALLERY_MERGE_FACE_TAG_ID + " = " + GALLERY_MERGE_TAG_TAG_ID + " INNER JOIN " + GALLERY_TABLE_MEDIA +
139     " ON " + GALLERY_MERGE_FACE_HASH + " = " + GALLERY_MEDIA_HASH + " GROUP BY " + GALLERY_MERGE_FACE_HASH + ", " +
140     GALLERY_FACE_ID;
141 const std::string GALLERY_FACE_TABLE_FULL = GALLERY_TABLE_MERGE_FACE + " INNER JOIN " + GALLERY_TABLE_FACE + " ON " +
142     GALLERY_MERGE_FACE_HASH + " = " + GALLERY_FACE_HASH + " AND " + GALLERY_MERGE_FACE_FACE_ID + " = " +
143     GALLERY_FACE_FACE_ID + " WHERE " + GALLERY_LANDMARKS + " != 0 ";
144 
145 // Path related
146 const std::string INTERNAL_PREFIX = "/storage/emulated";
147 const std::string APP_TWIN_DATA_PREFIX = "/AppTwinData";
148 } // namespace Media
149 } // namespace OHOS
150 
151 #endif  // BACKUP_CONST_COLUMN_H