1 /* 2 * Copyright (C) 2025 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 CLASSIFY_AGGREGATE_TYPES_H 17 #define CLASSIFY_AGGREGATE_TYPES_H 18 19 #include <limits> 20 #include <string> 21 #include <tuple> 22 23 namespace OHOS { 24 namespace Media { 25 enum class PhotoLabel : int32_t { 26 ID_CARD = 4, 27 PASSPORT = 5, 28 DEBIT_CARD = 6, 29 BICYCLE = 7, 30 BUS = 8, 31 SHIP = 9, 32 TRAIN = 10, 33 AIRPLANE = 11, 34 AUTOMOBILE = 12, 35 CAT = 14, 36 DOG = 15, 37 BRIDAL_VEIL = 24, 38 FLOWER = 25, 39 SUSHI = 27, 40 BARBECUE = 28, 41 WEDDING = 35, 42 CITY_OVERLOOK = 40, 43 SUNRISE_SUNSET = 41, 44 SKY = 44, 45 NIGHT = 47, 46 MOUNTAIN = 52, 47 BUILDING = 53, 48 CLOUD = 54, 49 WATERFALL = 55, 50 RAINBOW = 59, 51 CANDLE = 60, 52 STATUE_OF_LIBERTY = 62, 53 PPT = 63, 54 GROUP_PHOTO = 67, 55 DINE_TOGETHER = 68, 56 UANGZ_TOWER = 69, 57 HOT_POT = 96, 58 DIPLOMA = 97, 59 FOUNTAIN = 105, 60 FIREWORKS = 107, 61 BUSINESS_CARD = 108, 62 BIRTHDAY_CAKE = 113, 63 BIRTHDAY = 114, 64 THE_GREAT_WALL = 116, 65 ORIENTAL_PEARL_TOWER = 117, 66 UANGZHOU_TOWER = 118, 67 STONECROP_FAMILY = 134, 68 RING = 138, 69 BRACELET = 139, 70 DEED = 179, 71 ACCOUNT_BOOK = 180, 72 INVOICE = 181, 73 TRAIN_TICKET = 182, 74 AIR_TICKET = 183, 75 MOVIE_TICKET = 184, 76 QR_CODE = 191, 77 BAR_CODE = 192, 78 PIZZA = 207, 79 HAMBURGER = 213, 80 SANDWICH = 215, 81 STEAK = 216, 82 CRAB = 222, 83 POTALA_PALACE_IN_LHASA = 252, 84 MACAU_RUINS_OF_ST_PAULS_ARCH = 254, 85 BEIJING_TIANANMEN = 255, 86 BEIJING_NATIONAL_STADIUM_BIRD_NEST = 256, 87 BEIJING_NATIONAL_SWIMMING_CENTER_WATER_CUBE = 257, 88 CHONGQING_JIEFANGBEI = 258, 89 PARIS_ARC_DE_TRIOMPHE = 263, 90 BEIJING_CENTRAL_TELEVISION_BUILDING = 264, 91 MARRIAGE_CERTIFICATE = 294, 92 DRIVER_LICENSE = 295, 93 DRIVING_LICENSE = 296, 94 SHANGHAI_WORLD_EXPO_HALL = 297, 95 LAYOUT = 299, 96 OCEAN_BEACH_LAKE = 308, 97 AURORA = 1073, 98 LIGHTNING = 1074, 99 MOON = 1075, 100 SUNRISE_AND_SUNSET = 1076, 101 NIGHT_SKY = 1078, 102 VOLCANO = 1080, 103 CLIFF = 1081, 104 BEACH = 1082, 105 SNOWY_MOUNTAIN = 1083, 106 DESERT = 1086, 107 CORAL_REEF = 1087, 108 GRADUATION_GOWN = 1093, 109 GROUP_PHOTO_ON_STAGE_AT_GRADUATION = 1131, 110 THROW_THE_GRADUATION_CAP = 1132, 111 LIFT_THE_VEIL = 1133, 112 CHEERS = 1136, 113 PYRAMID = 1164, 114 ITALIAN_PASTA = 1208, 115 FRIED_CHICKEN = 1211, 116 WEDDING_CAKE = 1212, 117 PEKING_DUCK = 1217, 118 SALAD = 1235, 119 STEAMED_FISH = 1249, 120 BREAD = 1254, 121 DESSERT = 1261, 122 TEPPANYAKI = 1262, 123 DIAMOND = 1265, 124 BIRTHDAY_HAT = 1268, 125 GRADUATION_CAP = 1269, 126 CROWN = 1271, 127 JEWELRY = 1276, 128 RECEIPTS = 1280, 129 BRIDE = 1284, 130 CHILD = 1287, 131 INFANT_SWIMMING = 1297, 132 SLIDE = 1298, 133 SWING = 1299, 134 SOLVING_A_RUBIKS_CUBE = 1300, 135 BLOWING_BUBBLES = 1301, 136 FLOOR_PLAN = 1303, 137 BONFIRE_PARTY = 1332, 138 PLUM_BLOSSOM = 1375, 139 SUNFLOWER = 1377, 140 LOTUS = 1379, 141 DAISY = 1384, 142 CARNATION = 1385, 143 ORCHID = 1386, 144 ROSE = 1388, 145 TULIP = 1390, 146 CHRYSANTHEMUM = 1393, 147 }; 148 149 enum class AggregateType : int32_t { 150 CARD = 20001, 151 TICKET = 20002, 152 DOCUMENT = 20003, 153 PARENT_CHILD_ACTIVITY = 20004, 154 PET = 20005, 155 SELFIE_ALBUM = 20006, 156 BIRTHDAY = 20008, 157 WEDDING = 20010, 158 GRADUATE = 20011, 159 FOOD = 20012, 160 CULTURAL_LANDSCAPE = 20013, 161 NATURAL_SCENERY = 20014, 162 FLOWERS_AND_PLANTS = 20015, 163 JEWELRY = 20016, 164 TRANSPORT = 20019, 165 USER_COMMENT_ALBUM = 20020, 166 }; 167 168 enum class OcrAggregateType : int32_t { 169 FRONT_CARD = 5005, 170 BACK_CARD = 5004, 171 }; 172 173 inline const std::vector<std::string> BACK_OCR_TEXT { 174 "公民身份号码" 175 }; 176 177 inline const std::vector<std::string> FRONT_OCR_TEXT { 178 "居民身份证", "签发机关", "有效期限" 179 }; 180 181 inline const std::unordered_map<OcrAggregateType, std::vector<std::string>> OCR_AGGREGATE_MAPPING_TABLE = { 182 {OcrAggregateType::FRONT_CARD, FRONT_OCR_TEXT}, 183 {OcrAggregateType::BACK_CARD, BACK_OCR_TEXT}, 184 }; 185 186 inline const std::unordered_map<PhotoLabel, AggregateType> AGGREGATE_MAPPING_TABLE = { 187 {PhotoLabel::ID_CARD, AggregateType::CARD}, 188 {PhotoLabel::PASSPORT, AggregateType::CARD}, 189 {PhotoLabel::DEBIT_CARD, AggregateType::CARD}, 190 {PhotoLabel::ACCOUNT_BOOK, AggregateType::CARD}, 191 {PhotoLabel::DRIVER_LICENSE, AggregateType::CARD}, 192 {PhotoLabel::DRIVING_LICENSE, AggregateType::CARD}, 193 {PhotoLabel::DEED, AggregateType::CARD}, 194 {PhotoLabel::MARRIAGE_CERTIFICATE, AggregateType::CARD}, 195 {PhotoLabel::INVOICE, AggregateType::TICKET}, 196 {PhotoLabel::RECEIPTS, AggregateType::TICKET}, 197 {PhotoLabel::AIR_TICKET, AggregateType::TICKET}, 198 {PhotoLabel::TRAIN_TICKET, AggregateType::TICKET}, 199 {PhotoLabel::MOVIE_TICKET, AggregateType::TICKET}, 200 {PhotoLabel::BUSINESS_CARD, AggregateType::DOCUMENT}, 201 {PhotoLabel::QR_CODE, AggregateType::DOCUMENT}, 202 {PhotoLabel::PPT, AggregateType::DOCUMENT}, 203 {PhotoLabel::BAR_CODE, AggregateType::DOCUMENT}, 204 {PhotoLabel::LAYOUT, AggregateType::DOCUMENT}, 205 {PhotoLabel::FLOOR_PLAN, AggregateType::DOCUMENT}, 206 {PhotoLabel::INFANT_SWIMMING, AggregateType::PARENT_CHILD_ACTIVITY}, 207 {PhotoLabel::CHILD, AggregateType::PARENT_CHILD_ACTIVITY}, 208 {PhotoLabel::CAT, AggregateType::PET}, 209 {PhotoLabel::DOG, AggregateType::PET}, 210 {PhotoLabel::CANDLE, AggregateType::BIRTHDAY}, 211 {PhotoLabel::BIRTHDAY_HAT, AggregateType::BIRTHDAY}, 212 {PhotoLabel::BIRTHDAY_CAKE, AggregateType::BIRTHDAY}, 213 {PhotoLabel::BIRTHDAY, AggregateType::BIRTHDAY}, 214 {PhotoLabel::WEDDING_CAKE, AggregateType::WEDDING}, 215 {PhotoLabel::BRIDAL_VEIL, AggregateType::WEDDING}, 216 {PhotoLabel::WEDDING, AggregateType::WEDDING}, 217 {PhotoLabel::BRIDE, AggregateType::WEDDING}, 218 {PhotoLabel::CHEERS, AggregateType::WEDDING}, 219 {PhotoLabel::LIFT_THE_VEIL, AggregateType::WEDDING}, 220 {PhotoLabel::GROUP_PHOTO_ON_STAGE_AT_GRADUATION, AggregateType::GRADUATE}, 221 {PhotoLabel::DIPLOMA, AggregateType::GRADUATE}, 222 {PhotoLabel::GRADUATION_GOWN, AggregateType::GRADUATE}, 223 {PhotoLabel::THROW_THE_GRADUATION_CAP, AggregateType::GRADUATE}, 224 {PhotoLabel::GRADUATION_CAP, AggregateType::GRADUATE}, 225 {PhotoLabel::SUSHI, AggregateType::FOOD}, 226 {PhotoLabel::BARBECUE, AggregateType::FOOD}, 227 {PhotoLabel::HOT_POT, AggregateType::FOOD}, 228 {PhotoLabel::PIZZA, AggregateType::FOOD}, 229 {PhotoLabel::HAMBURGER, AggregateType::FOOD}, 230 {PhotoLabel::SANDWICH, AggregateType::FOOD}, 231 {PhotoLabel::STEAK, AggregateType::FOOD}, 232 {PhotoLabel::CRAB, AggregateType::FOOD}, 233 {PhotoLabel::TEPPANYAKI, AggregateType::FOOD}, 234 {PhotoLabel::ITALIAN_PASTA, AggregateType::FOOD}, 235 {PhotoLabel::FRIED_CHICKEN, AggregateType::FOOD}, 236 {PhotoLabel::PEKING_DUCK, AggregateType::FOOD}, 237 {PhotoLabel::SALAD, AggregateType::FOOD}, 238 {PhotoLabel::STEAMED_FISH, AggregateType::FOOD}, 239 {PhotoLabel::DESSERT, AggregateType::FOOD}, 240 {PhotoLabel::BREAD, AggregateType::FOOD}, 241 {PhotoLabel::NIGHT, AggregateType::CULTURAL_LANDSCAPE}, 242 {PhotoLabel::FIREWORKS, AggregateType::CULTURAL_LANDSCAPE}, 243 {PhotoLabel::BUILDING, AggregateType::CULTURAL_LANDSCAPE}, 244 {PhotoLabel::CITY_OVERLOOK, AggregateType::CULTURAL_LANDSCAPE}, 245 {PhotoLabel::FOUNTAIN, AggregateType::CULTURAL_LANDSCAPE}, 246 {PhotoLabel::BEIJING_TIANANMEN, AggregateType::CULTURAL_LANDSCAPE}, 247 {PhotoLabel::THE_GREAT_WALL, AggregateType::CULTURAL_LANDSCAPE}, 248 {PhotoLabel::ORIENTAL_PEARL_TOWER, AggregateType::CULTURAL_LANDSCAPE}, 249 {PhotoLabel::UANGZHOU_TOWER, AggregateType::CULTURAL_LANDSCAPE}, 250 {PhotoLabel::BEIJING_NATIONAL_STADIUM_BIRD_NEST, AggregateType::CULTURAL_LANDSCAPE}, 251 {PhotoLabel::BEIJING_NATIONAL_SWIMMING_CENTER_WATER_CUBE, AggregateType::CULTURAL_LANDSCAPE}, 252 {PhotoLabel::BEIJING_CENTRAL_TELEVISION_BUILDING, AggregateType::CULTURAL_LANDSCAPE}, 253 {PhotoLabel::SHANGHAI_WORLD_EXPO_HALL, AggregateType::CULTURAL_LANDSCAPE}, 254 {PhotoLabel::CHONGQING_JIEFANGBEI, AggregateType::CULTURAL_LANDSCAPE}, 255 {PhotoLabel::POTALA_PALACE_IN_LHASA, AggregateType::CULTURAL_LANDSCAPE}, 256 {PhotoLabel::MACAU_RUINS_OF_ST_PAULS_ARCH, AggregateType::CULTURAL_LANDSCAPE}, 257 {PhotoLabel::STATUE_OF_LIBERTY, AggregateType::CULTURAL_LANDSCAPE}, 258 {PhotoLabel::UANGZ_TOWER, AggregateType::CULTURAL_LANDSCAPE}, 259 {PhotoLabel::PARIS_ARC_DE_TRIOMPHE, AggregateType::CULTURAL_LANDSCAPE}, 260 {PhotoLabel::PYRAMID, AggregateType::CULTURAL_LANDSCAPE}, 261 {PhotoLabel::MOON, AggregateType::NATURAL_SCENERY}, 262 {PhotoLabel::SUNRISE_AND_SUNSET, AggregateType::NATURAL_SCENERY}, 263 {PhotoLabel::NIGHT_SKY, AggregateType::NATURAL_SCENERY}, 264 {PhotoLabel::RAINBOW, AggregateType::NATURAL_SCENERY}, 265 {PhotoLabel::AURORA, AggregateType::NATURAL_SCENERY}, 266 {PhotoLabel::LIGHTNING, AggregateType::NATURAL_SCENERY}, 267 {PhotoLabel::OCEAN_BEACH_LAKE, AggregateType::NATURAL_SCENERY}, 268 {PhotoLabel::BEACH, AggregateType::NATURAL_SCENERY}, 269 {PhotoLabel::CORAL_REEF, AggregateType::NATURAL_SCENERY}, 270 {PhotoLabel::MOUNTAIN, AggregateType::NATURAL_SCENERY}, 271 {PhotoLabel::SNOWY_MOUNTAIN, AggregateType::NATURAL_SCENERY}, 272 {PhotoLabel::CLIFF, AggregateType::NATURAL_SCENERY}, 273 {PhotoLabel::WATERFALL, AggregateType::NATURAL_SCENERY}, 274 {PhotoLabel::DESERT, AggregateType::NATURAL_SCENERY}, 275 {PhotoLabel::VOLCANO, AggregateType::NATURAL_SCENERY}, 276 {PhotoLabel::FLOWER, AggregateType::FLOWERS_AND_PLANTS}, 277 {PhotoLabel::STONECROP_FAMILY, AggregateType::FLOWERS_AND_PLANTS}, 278 {PhotoLabel::PLUM_BLOSSOM, AggregateType::FLOWERS_AND_PLANTS}, 279 {PhotoLabel::SUNFLOWER, AggregateType::FLOWERS_AND_PLANTS}, 280 {PhotoLabel::LOTUS, AggregateType::FLOWERS_AND_PLANTS}, 281 {PhotoLabel::DAISY, AggregateType::FLOWERS_AND_PLANTS}, 282 {PhotoLabel::CARNATION, AggregateType::FLOWERS_AND_PLANTS}, 283 {PhotoLabel::ORCHID, AggregateType::FLOWERS_AND_PLANTS}, 284 {PhotoLabel::ROSE, AggregateType::FLOWERS_AND_PLANTS}, 285 {PhotoLabel::TULIP, AggregateType::FLOWERS_AND_PLANTS}, 286 {PhotoLabel::CHRYSANTHEMUM, AggregateType::FLOWERS_AND_PLANTS}, 287 {PhotoLabel::RING, AggregateType::JEWELRY}, 288 {PhotoLabel::BRACELET, AggregateType::JEWELRY}, 289 {PhotoLabel::DIAMOND, AggregateType::JEWELRY}, 290 {PhotoLabel::CROWN, AggregateType::JEWELRY}, 291 {PhotoLabel::JEWELRY, AggregateType::JEWELRY}, 292 {PhotoLabel::AUTOMOBILE, AggregateType::TRANSPORT}, 293 {PhotoLabel::AIRPLANE, AggregateType::TRANSPORT}, 294 {PhotoLabel::BICYCLE, AggregateType::TRANSPORT}, 295 {PhotoLabel::SHIP, AggregateType::TRANSPORT}, 296 {PhotoLabel::BUS, AggregateType::TRANSPORT}, 297 {PhotoLabel::TRAIN, AggregateType::TRANSPORT}, 298 }; 299 } // namespace Media 300 } // namespace OHOS 301 #endif // CLASSIFY_AGGREGATE_TYPES_H