# -*- coding: utf-8 -*-
from enum import Enum


class MetadataFieldKey(Enum):
    # REQUIRED_FIELDS
    FILE = "File"
    PATH = "Path"
    FORMAT = "Format"
    SIZE_MB = "SizeMb"
    GPS_MAP_DATUM = "GPSMapDatum"
    MODEL = "Model"
    SOFTWARE = "Software"
    X_RESOLUTION = "XResolution"
    Y_RESOLUTION = "YResolution"
    SHUTTER_SPEED_VALUE = "ShutterSpeedValue"
    DATE_TIME_ORIGINAL = "DateTimeOriginal"
    APERTURE_VALUE = "ApertureValue"
    MAX_APERTURE_VALUE = "MaxApertureValue"
    LIGHT_SOURCE = "LightSource"
    FOCAL_LENGTH = "FocalLength"
    EXIF_IMAGE_WIDTH = "ExifImageWidth"
    EXIF_IMAGE_HEIGHT = "ExifImageHeight"
    EXPOSURE_TIME = "ExposureTime"
    F_NUMBER = "FNumber"
    EXPOSURE_PROGRAM = "ExposureProgram"
    ISO_SPEED_RATINGS = "ISOSpeedRatings"
    EXPOSURE_MODE = "ExposureMode"
    LENS_SPECIFICATION = "LensSpecification"
    DIGITAL_ZOOM_RATIO = "DigitalZoomRatio"
    GPS_STATUS_EXIF = "GpsStatusExif"
    GPS_STATUS_XMP = "GpsStatusXmp"
    GPS_LATITUDE_REF = "GpsLatitudeRef"
    GPS_LONGITUDE_REF = "GpsLongitudeRef"
    GPS_VERSION_ID = "GpsVersionId"
    GPS_ALTITUDE_REF = "GpsAltitudeRef"
    GPS_ALTITUDE = "GpsAltitude"
    ALTITUDE_TYPE = "AltitudeType"
    GPS_LATITUDE = "GpsLatitude"
    GPS_LONGITUDE = "GpsLongitude"
    GPS_LATITUDE_XMP = "GpsLatitudeXmp"
    GPS_LONGITUDE_XMP = "GpsLongitudeXmp"
    ABSOLUTE_ALTITUDE = "AbsoluteAltitude"
    RELATIVE_ALTITUDE = "RelativeAltitude"
    GIMBAL_ROLL_DEGREE = "GimbalRollDegree"
    GIMBAL_YAW_DEGREE = "GimbalYawDegree"
    GIMBAL_PITCH_DEGREE = "GimbalPitchDegree"
    FLIGHT_ROLL_DEGREE = "FlightRollDegree"
    FLIGHT_YAW_DEGREE = "FlightYawDegree"
    FLIGHT_PITCH_DEGREE = "FlightPitchDegree"
    FLIGHT_X_SPEED = "FlightXSpeed"
    FLIGHT_Y_SPEED = "FlightYSpeed"
    FLIGHT_Z_SPEED = "FlightZSpeed"
    RTK_FLAG = "RtkFlag"
    RTK_STD_LON = "RtkStdLon"
    RTK_STD_LAT = "RtkStdLat"
    RTK_STD_HGT = "RtkStdHgt"
    RTK_DIFF_AGE = "RtkDiffAge"
    DEWARP_FLAG = "DewarpFlag"
    UTC_AT_EXPOSURE = "UTCAtExposure"
    SHUTTER_COUNT = "ShutterCount"
    FOCUS_DISTANCE = "FocusDistance"
    CAMERA_SERIAL_NUMBER = "CameraSerialNumber"
    DRONE_MODEL = "DroneModel"
    DRONE_SERIAL_NUMBER = "DroneSerialNumber"
    CAPTURE_UUID = "CaptureUUID"
    PICTURE_QUALITY = "PictureQuality"
    SEGMENTOS_TOTAL = "SegmentosTotal"
    SENSOR_TEMPERATURE = "SensorTemperature"
    LRF_STATUS = "LRFStatus"
    LRF_TARGET_DISTANCE = "LRFTargetDistance"
    LRF_TARGET_LON = "LRFTargetLon"
    LRF_TARGET_LAT = "LRFTargetLat"
    LRF_TARGET_ALT = "LRFTargetAlt"
    LRF_TARGET_ABS_ALT = "LRFTargetAbsAlt"
    WHITE_BALANCE_CCT = "WhiteBalanceCCT"
    SENSOR_FPS = "SensorFPS"
    RECOMMENDED_EXPOSURE_INDEX = "RecommendedExposureIndex"
    LENS_POSITION = "LensPosition"
    LENS_TEMPERATURE = "LensTemperature"
    EXIF_SHARPNESS = "ExifSharpness"
    EXIF_CONTRAST = "ExifContrast"
    EXIF_SATURATION = "ExifSaturation"
    EXIF_FLASH_PIX_VERSION = "ExifFlashPixVersion"
    EXIF_COLOR_SPACE = "ExifColorSpace"
    COORD_SOURCE = "CoordSource"
    QUALITY_FLAG = "QualityFlag"
    DEWARP_DATE = "DewarpDate"
    DEWARP_FOCAL_X = "DewarpFocalX"
    DEWARP_FOCAL_Y = "DewarpFocalY"
    DEWARP_CX = "DewarpCx"
    DEWARP_CY = "DewarpCy"
    DEWARP_K1 = "DewarpK1"
    DEWARP_K2 = "DewarpK2"
    DEWARP_K3 = "DewarpK3"
    DEWARP_P1 = "DewarpP1"
    DEWARP_P2 = "DewarpP2"

    # CUSTOM_FIELDS
    X_DIFFERENCE = "XDifference"
    Y_DIFFERENCE = "YDifference"
    Z_DIFFERENCE = "ZDifference"
    XY_DIFFERENCE = "XYDifference"
    THREE_D_DIFFERENCE = "3DDifference"
    FILE_TYPE = "FileType"
    DT_FULL = "DtFull"
    DT_DATE = "DtDate"
    DT_TIME = "DtTime"
    FLIGHT_NUMBER = "FlightNumber"
    FLIGHT_NAME = "FlightName"
    FOLDER_LEVEL_1 = "FolderLevel1"
    FOLDER_LEVEL_2 = "FolderLevel2"
    FOLDER_LEVEL_3 = "FolderLevel3"
    FOLDER_LEVEL_4 = "FolderLevel4"
    FOLDER_LEVEL_5 = "FolderLevel5"
    GIMBAL_OFFSET = "GimbalOffset"
    THREE_D_SPEED = "3DSpeed"
    TIME_SINCE_PREVIOUS = "TimeSincePrevious"
    GEODESIC_DISTANCE_PREVIOUS = "GeodesicDistancePrevious"
    DISTANCE_3D_PREVIOUS = "Distance3dPrevious"
    AVG_VELOCITY_BETWEEN_PHOTOS = "AvgVelocityBetweenPhotos"
    LINEAR_VELOCITY_INSTANT = "LinearVelocityInstant"
    DISPLACEMENT_DIRECTION = "DisplacementDirection"
    INCIDENCE_ANGLE = "IncidenceAngle"
    ESTIMATED_COVERAGE = "EstimatedCoverage"
    COVERAGE_WIDTH = "CoverageWidth"
    COVERAGE_HEIGHT = "CoverageHeight"
    PREDICTED_OVERLAP = "PredictedOverlap"
    F_OVERLAP = "FOverlap"
    RTK_EFFECTIVE_PRECISION = "RtkEffectivePrecision"
    RTK_TYPE = "RtkType"
    IS_IDEAL_OVERLAP = "IsIdealOverlap"
    ABRUPT_CHANGE_FLAG = "AbruptChangeFlag"
    GIMBAL_ANGULAR_VELOCITY = "GimbalAngularVelocity"
    ORTHORECTIFICATION_POTENTIAL = "OrthorectificationPotential"
    SHUTTER_LIFE_PCT = "ShutterLifePct"
    GROUND_SAMPLE_DISTANCE_CM = "GroundSampleDistanceCm"
    TOTAL_HEAT_INDEX = "TotalHeatIndex"
    SPEED_3D_KMH = "Speed3dKmh"
    YAW_ALIGNMENT_ERROR = "YawAlignmentError"
    MOTION_BLUR_RISK = "MotionBlurRisk"
    EXPOSURE_VALUE_EV = "ExposureValueEv"
    LIGHT_SOURCE_CLASSIFICATION = "LightSourceClassification"
    LIGHT_CONSISTENCY = "LightConsistency"
    VERTICAL_STABILITY = "VerticalStability"
    TRAJECTORY_SMOOTHNESS = "TrajectorySmoothness"
    SPEED_VARIATION_INDEX = "SpeedVariationIndex"
    RTK_STABILITY_SCORE = "RtkStabilityScore"
    CAPTURE_EFFICIENCY = "CaptureEfficiency"
    GROUND_ELEVATION = "GroundElevation"
    PHOTOGRAMMETRY_QUALITY_INDEX = "PhotogrammetryQualityIndex"
    STRIP_ID = "StripId"
    EV_CLASSIFICATION = "EvClassification"
    FLIGHT_ALTITUDE = "FlightAltitude"
    FOV = "FOV"
    CIRCLE_OF_CONFUSION = "CircleOfConfusion"
    DOF = "DOF"
    HYPERFOCAL_DISTANCE = "HyperfocalDistance"
    LIGHT_VALUE = "LightValue"
    FOCAL_LENGTH_35EFL = "FocalLength35efl"

    # MRK_FIELDS
    FOTO = "Foto"
    LAT = "Lat"
    LON = "Lon"
    ALT = "Alt"
    DATE_NAME = "DateName"
    MRK_FILE = "MrkFile"
    MRK_PATH = "MrkPath"
    MRK_FOLDER = "MrkFolder"
