#  Copyright (c) 2022 Huawei Device Co., Ltd.
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

#####################################################
#     below is the format of defining event         #
#####################################################
#domain: domain name.  [Only one domain name can be defined at the top]
#
#author: the author name who defined this event.
#date: the date when this event was defined, format is YYYY-MM-DD.
#logged: source file which refer to this event.
#usage: the usage of this event.
#//Define event name and event properties.
#@EVENT_NAME: the event definition part begin.
#  // __BASE is used for defining the basic info of the event.
#  // "type" optional values are: FAULT, STATISTICS, SECURITY, BEHAVIOR.
#  // "level" optional values are: CRITICAL, MINOR.
#  // "tag" set tags with may used by subscriber of this event, multiple tags divided by space.
#  // "desc" full description of this event.
#  @PARAMETER: {type: parameter type, arrsize: array length(optional), desc: parameter description}.
#  // follow the __BASE block, each line defines a parameter of this event.
#  // "type" optional values are: INT8, UINT8, INT16, UINT16, INT32, UINT32, INT64, UINT64, FLOAT, DOUBLE, STRING.
#  // "arrsize" of the parameter is an array, set a non-zero value.
#  // "desc" full description of this parameter.

# DESCRIPTION contains userid，request type.
# REASON contains errno num, and failed interface.

domain: MEDIALIBRARY

MEDIALIB_FILE_OPT_ERROR:
  __BASE: { type: FAULT, level: CRITICAL, desc: create file error }
  UID: { type: INT32, desc: user id}
  ERR_FILE: { type: STRING, desc: failed file }
  LINE: { type: UINT32, desc: failed line }
  ERROR_CODE: { type: INT32, desc: error code }
  FILE: { type: STRING, desc: file name }
  TYPE: { type: STRING, desc: operation type }
  CALLING_ID: { type: INT32, desc: calling uid }

MEDIALIB_DB_OPT_ERROR:
  __BASE: { type: FAULT, level: CRITICAL, desc: local db create file failure }
  UID: { type: INT32, desc: user id}
  ERR_FILE: { type: STRING, desc: failed file }
  LINE: { type: UINT32, desc: upgrade failed line }
  ERROR_CODE: { type: INT32, desc: error code }
  TYPE: { type: STRING, desc: operation type }
  CALLING_ID: { type: INT32, desc: calling uid }

MEDIALIB_DB_UPGRADE_ERROR:
  __BASE: { type: FAULT, level: CRITICAL, desc: local database upgrade failure }
  ERR_FILE: { type: STRING, desc: upgrade failed file }
  LINE: { type: UINT32, desc: upgrade failed line }

MEDIALIB_THUMBNAIL_STAT:
  __BASE: { type: BEHAVIOR, level: MINOR, desc: thumbnail aging is triggered when the screen is off }
  UID: { type: INT32, desc: user id}
  TIMES: { type: UINT32, desc: history trigger number }
  GNUMS: { type: UINT32, desc: generate thumbnail nums }
  ANUMS: { type: UINT32, desc: aging thumbnail nums }

MEDIALIB_DB_UPGRADE_STAT:
  __BASE: { type: BEHAVIOR, level: MINOR, desc: database upgrade }
  PRE_VERSION: { type: INT32, desc: pre upgrade version number }
  AFTER_VERSION: { type: INT32, desc: after upgrade version number }
  COUNT: { type: UINT32, desc: upgrade events count }

MEDIALIB_SYNC_STAT:
  __BASE: { type: BEHAVIOR, level: MINOR, desc: synchronization times between the local end and the cloud }
  TIMES: { type: UINT32, desc: sync times }

MEDIALIB_AGING_STAT:
  __BASE: { type: BEHAVIOR, level: MINOR, desc: aging state }
  TIMES: { type: UINT32, desc: history trigger times }
  COUNT: { type: UINT32, desc: the recycle number of aging }

MEDIALIB_MSC_FIRST_VISIT_STAT:
  __BASE: { type: BEHAVIOR, level: MINOR, desc: time interval between photo capture and first visit by the app }
  PHOTO_ID: { type: STRING, desc: photo id }
  TIME_INTERVAL: { type: UINT64, desc: the time interval from taking the photo to the fist visit }

MEDIALIB_MSC_REQUST_POLICY_STAT:
  __BASE: { type: STATISTIC, level: MINOR, desc: multistages capture request policy }
  CALLING_PACKAGE: { type: STRING, desc: calling package name }
  HIGH_QUALITY_COUNT: { type: UINT32, desc: high quality policy count }
  BALANCE_QUALITY_COUNT: { type: UINT32, desc: balance quality policy count }
  EMERGENCY_QUALITY_COUNT: { type: UINT32, desc: emergency quality policy count }

MEDIALIB_MSC_TRIGGER_RATIO_STAT:
  __BASE: { type: STATISTIC, level: MINOR, desc: trigger source ratio }
  THIRD_PART_COUNT: { type: UINT32, desc: count of third part app trigger multistages capture }
  AUTO_COUNT: { type: UINT32, desc: count of auto trigger multistages capture  }

MEDIALIB_MSC_TOTAL_TIME_STAT:
  __BASE: { type: STATISTIC, level: MINOR, desc: multistages capture total time cost }
  PHOTO_ID: { type: STRING, desc: photo id }
  TOTAL_TIME_COST: { type: UINT64, desc: total time cost of multistages capture }

MEDIALIB_MSC_RESULT_STAT:
  __BASE: { type: STATISTIC, level: MINOR, desc: result of multistages capture }
  PHOTO_ID: { type: STRING, desc: photo id }
  RESULT: { type: INT32, desc: result of processing multistages capture }
  MEDIA_TYPE: { type: INT32, desc: media type }

MEDIALIB_THUMBNAIL_GENERATION:
  __BASE: { type: STATISTIC, level: MINOR, desc: Medialibrary thumbnail generation statistics, preserve: true }
  URI: { type: STRING, desc: The image uri }
  SCENE: { type: INT32, desc: The scene triggers thumbnail generation }
  OPEN_THUMB_COST: { type: INT32, desc: Open cloud thumbnail cost time }
  OPEN_LCD_COST: { type: INT32, desc: Open cloud LCD thumbnail cost time }
  SOURCE_TYPE: { type: INT32, desc: The image source that generates thumbnails }
  SOURCE_WIDTH: { type: INT32, desc: The width of the source image that generates thumbnails }
  SOURCE_HEIGHT: { type: INT32, desc: The height of the source image that generates thumbnails }
  TOTAL_COST: { type: INT32, desc: The total cost time that generated thumbnails }
  ERROR_CODE: { type: INT32, desc: The error code }

MEDIALIB_BACKUP_PORTRAIT_STAT:
  __BASE: { type: STATISTIC, level: MINOR, desc: result of portrait restoration }
  ALBUM_COUNT: { type: UINT32, desc: number of restored portrait albums }
  PHOTO_COUNT: { type: UINT64, desc: number of restored photos with portrait }
  FACE_COUNT: { type: UINT64, desc: number of restored face analysis data }
  TOTAL_TIME_COST: { type: UINT64, desc: total time cost of portrait restoration }

DATABASE_CORRUPTION_ERROR:
  __BASE: { type: FAULT, level: CRITICAL, desc: The database corruption error }
  DATE: { type: STRING, desc: The database corruption time }

MEDIALIB_CLOUDENHANCEMENT_STAT:
  __BASE: {type: STATISTIC, level: CRITICAL, desc: mediaLibrary cloud enhancement task statistics, preserve: true }
  PHOTO_ID: { type: STRING, desc: photo id }
  TOTAL_TIME_COST: { type: UINT64, desc: total time cost of cloud enhancement }
  COMPLETE_TYPE: { type: STRING, desc: types of cloudenhancement task completion}

MEDIALIB_BACKUP_MEDIA_STAT:
  __BASE: {type: STATISTIC, level: CRITICAL, desc: Report the under transferred media statistic info before Upgrade Restore task, preserve: true }
  SCENE_CODE: { type: INT32, desc: Scenarios }
  TASK_ID: { type: STRING, desc: Task ID }
  ALBUM_NAME: { type: STRING, desc: Album name }
  TOTAL_COUNT: { type: INT32, desc: Total Assets }
  IMAGE_COUNT: { type: INT32, desc: Total number of pictures }
  VIDEO_COUNT: { type: INT32, desc: Total number of videos }
  HIDDEN_COUNT: { type: INT32, desc: Number of hidden assets }
  TRASHED_COUNT: { type: INT32, desc: Number of deleted assets }
  FAVORITE_COUNT: { type: INT32, desc: Number of Favorited Assets }
  CLOUD_COUNT: { type: INT32, desc: Pure Cloud Asset Quantity }
  BURST_COVER_COUNT: { type: INT32, desc: Number of Cover Images }
  BURST_TOTAL_COUNT: { type: INT32, desc: Total number of continuous pictures }
 
MEDIALIB_BACKUP_RESTORE_RESULT:
  __BASE: {type: STATISTIC, level: CRITICAL, desc: Report the data transfer result after Upgrade Restore task, preserve: true }
  SCENE_CODE: { type: INT32, desc: Scenarios }
  TASK_ID: { type: STRING, desc: Task ID }
  ERROR_CODE: { type: STRING, desc: Execution result code }
  ERROR_INFO: { type: STRING, desc: Execution Information }
  TYPE: { type: STRING, desc: Error Type }
  BACKUP_INFO: { type: STRING, desc: Asset type }
  DUPLICATE_COUNT: { type: INT32, desc: Number of existing assets of the new device }
  FAILED_COUNT: { type: INT32, desc: Number of assets that fail to be migrated }
  SUCCESS_COUNT: { type: INT32, desc: Number of Successfully Migrated Assets }