//
//  public  enum s.swift
//  PQSpeed
//
//  Created by lieyunye on 2020/5/29.
//  Copyright © 2020 BytesFlow. All rights reserved.
//

import Foundation

// MARK: - 视频播放页面类型

/// 视频播放页面类型
public  enum  PQVIDEOPAGETYPE {
    case PQVIDEOPAGETYPE_Normal // 默认-单个视频详情
    case PQVIDEOPAGETYPE_RECOMM // 默认-推荐
    case PQVIDEOPAGETYPE_ATTEN // 关注
    case PQVIDEOPAGETYPE_DETAIL // 用户发布视频详情
    case PQVIDEOPAGETYPE_LIKEDETAIL // 我的喜欢视频详情
    case PQVIDEOPAGETYPE_ATTUSERDETAIL // 关注用户详情
    case PQVIDEOPAGETYPE_SEARCHDETAIL // 搜索详情
    case PQVIDEOPAGETYPE_HOTVIDEODETAIL // 热门视频详情
    case PQVIDEOPAGETYPE_GUIDEVIDEODETAIL // 引导视频详情
    case PQVIDEOPAGETYPE_SINGLEVIDEODETAIL // 单个视频详情
    case PQVIDEOPAGETYPE_RECREATDETAIL // 再创作详情页
}

// MARK: - 视频播放状态

/// 视频播放状态
public  enum  PQVIDEO_PLAY_STATUS {
    case PQVIDEO_PLAY_STATUS_LOADING // 加载中
    case PQVIDEO_PLAY_STATUS_BEGIN // 开始播放
    case PQVIDEO_PLAY_STATUS_END // 播放结束
    case PQVIDEO_PLAY_STATUS_DISCONNECT // 重连失败
    case PQVIDEO_PLAY_STATUS_NOT_FOUND // 播放文件不存在
    case PQVIDEO_PLAY_STATUS_RECONNECT // 重连连接
}

// MARK: - 页面场景

/// 页面场景
public  enum  PAGESOURCE: String {
    /*************** 视频相关pageSource ***************/
    case sp_category = "speedApp-category" //   首页-单列
    case sp_category_recommend = "speedApp-category_recommend" // 由首页单列右划
    case sp_categoryDouble = "speedApp-categoryDouble" // 首页-双列
    case sp_videoDetail = "speedApp-videoDetail" // 视频详情页
    case sp_videoDetail_search = "speedApp-videoDetail_search" //    由搜索结果列表进入
    case sp_videoDetail_search_recommend = "speedApp-videoDetail_search_recommend" // 由搜索结果列表进入
    case sp_videoDetail_upload = "speedApp-videoDetail_upload" //     由我的tab中“作品”列表进入
    case sp_videoDetail_upload_recommend = "speedApp-videoDetail_upload_recommend" // 、由我的tab中“作品”列表进入
    case sp_videoDetail_favorite = "speedApp-videoDetail_favorite" // 由我的喜欢列表进入
    case sp_videoDetail_share = "speedApp-videoDetail_share" // 由我的分享列表进入
    case sp_videoDetail_favorite_recommend = "speedApp-videoDetail_favorite_recommend" // 由我的喜欢列表推荐
    case sp_userHomePage = "speedApp-userHomePage" // 用户个人主页
    case sp_videoDetail_userHomePage = "speedApp-videoDetail_userHomePage" // 由用户个人主页进入
    case sp_videoDetail_userHomePage_recommend = "speedApp-videoDetail_userHomePage_recommend" // 由用户个人主页进入
    case sp_recommendBottom = "speedApp-recommendBottom" //    底部展示的3个相关推荐视频
    case sp_follow = "speedApp-follow" // 关注tab
    case sp_follow_recommend = "speedApp-follow_recommend" // 由关注列表右划
    case sp_followSingle = "speedApp-followSingle" // 关注tab点击顶部个人头像进入某个人的关注
    case sp_followSingle_recommend = "speedApp-followSingle_recommend" // 关注tab点击顶部个人头像进入某个人的关注
    case sp_mine = "speedApp-mine" // 我的tab
    case sp_search = "speedApp-search" // 搜索页
    case sp_uploadVideo = "speedApp-uploadVideo" // 视频制作入口

    /*************** 活动相关pageSource ***************/
    case sp_activity_entranceButton = "speedApp_playActivity_entranceButton" // 活动活动入口按键
    case sp_activity_invite = "speedApp_playActivity_invite" // H5页面内邀请好友按键
    case sp_activity_threeDot = "speedApp_playActivity_threeDot" // APP右上角…按键
    case sp_activity_shareFriend = "speedApp_playActivity_shareFriend" // 进一步点击分享好友
    case sp_activity_shareMoment = "speedApp_playActivity_shareMoment" // 进一步点击分享朋友圈
    case sp_activity_openH5 = "speedApp_playActivity_completeOpenH5" // 当天完成活动的弹窗->去查看
    case sp_activity_openH5AndPayment = "speedApp_playActivity_completeOpenH5AndPayment" // 当天完成活动的弹窗->报名明日
    case sp_activity_failOpenH5 = "speedApp_playActivity_missionFailWindowOpenH5" // 未成功弹窗->继续活动
    case sp_activity_success_share = "speedApp_playActivity_missionSuccessWindow_share" // 成功弹窗->分享给好友炫耀下
    case sp_activity_entrance_close = "speedApp_playActivity_entrance_close" // 活动入口弹窗->关闭按钮
    case sp_activity_entranceWindow = "speedApp_playActivity_entranceWindow" // 活动入口弹窗
    case sp_activity_successWindow = "speedApp_playActivity_missionSuccessWindow" // 成功弹窗
    case sp_activity_failWindow = "speedApp_playActivity_missionFailWindow" // 未成功弹窗
    case sp_activity_completeWindow = "speedApp_playActivity_missionCompleteWindow" //  当天完成活动的弹窗

    /*************** 上传相关pageSource ***************/
    case sp_upload_videoSelect = "speedApp-upload_videoSelect" //  选视频-进入页面事件
    case sp_upload_coverSelect = "speedApp-upload_coverSelect" //  选封面-进入页面事件
    case sp_upload_videoPublish = "speedApp-upload_videoPublish" //  发布-进入页面事件

    /*************** tab点击相关pageSource ***************/
    case sp_categoryTabButton = "speedApp-categoryTabButton" //  首页tab
    case sp_followTabButton = "speedApp-followTabButton" //  关注tab
    case sp_uploadTabButton = "speedApp-uploadTabButton" //  上传tab
    case sp_mineTabButton = "speedApp-mineTabButton" //  我的tab
    case sp_msg_tabBtn = "speedApp_msgTabButton" //  消息tab

    /*************** 发布pageSource ***************/
    case sp_videoMaking = "speedApp-videoMaking" // 视频创作
    case sp_videoCompose_guid = "speedApp-videoCompose_guid" // 预览页面
    case sp_videoCompose_edit = "speedApp-videoCompose_edit" // 编辑页面
    case sp_videoCompose_overview = "speedApp-videoCompose_overview" // 总览页面
    case sp_videoCompose_composition = "speedApp-videoCompose_composition" // 合成页面
    case sp_material_search = "vlog-pages/user-videos-share" // 素材搜索上报

    /*************** 消息pageSource ***************/
    case sp_msg_shareSpace = "speedApp-message" // 分享空间
    case sp_msg_shareSpace_detail = "speedApp-message_shareSpace" // 分享空间详情
    case sp_msg_share = "speedApp-message_share" // 分享
    case sp_msg_like = "speedApp-message_like" // 喜欢
    case sp_msg_fans = "speedApp-message_fans" // 粉丝
    case sp_msg_push = "speedApp-message_push" // 通知

    /*************** 草稿箱相关pageSource ***************/
    case sp_draft_projectList = "speedApp-projectList" // 草稿箱列表
    case sp_reproduce_childList = "speedApp-reproduceCollection_child" // 再制作子列表页面
    case sp_reproduce_fatherList = "speedApp-reproduceCollection_father" // 再制作父列表页面
    case sp_reproduce_chilDetailList = "speedApp-videoDetail_reproduceCollection_child" // 再制作子列表页面
    case sp_reproduce_fatherDetailList = "speedApp-videoDetail_reproduceCollection_father" // 再制作父列表页面
    // add by ak
    case sp_speedApp_upload2Compose = "speedApp-upload2Compose" // 上传转创作

    /*************** 卡点视频相关pageSource ***************/
    case sp_stuck_selectMaterial = "speedApp-selectSyncedUpMaterial" // 卡点视频素材选择页
    case sp_stuck_selectSynceedUpMusic = "speedApp-selectSynceedUpMusic" // 卡点视频音乐选择页
    case sp_stuck_previewSyncedUp = "speedApp_previewSyncedUp" // 预览页面曝光上报
    case sp_stuck_searchSyncedUpMusic = "speedApp_searchSyncedUpMusic" // 音乐素材搜索页
    case sp_stuck_publishSyncedUp = "speedApp_publishSyncedUp" // 合成发布页
}

// MARK: - objectType

/// objectType
public  enum  objectType: String {
    /*************** tab点击相关pageSource ***************/

    case ot_home_tabBtn = "speedApp-categoryTabButton" //  首页tab
    case ot_follow_tabBtn = "speedApp-followTabButton" //  关注tab
    case ot_up_tabBtn = "speedApp-uploadTabButton" //  上传tab
    case ot_mine_tabBtn = "speedApp-mineTabButton" //  我的tab
    case ot_public_tabBtn = "speedApp-publicTabButton" //  发布tab
    case ot_msg_tabBtn = "speedApp_msgTabButton" //  消息tab

    /*************** 上传相关objectType ***************/
    case ot_up_backBtn = "speedApp-uploadBackButton" // 点击左下角叉子
    case ot_up_nextBtn = "speedApp-uploadNextButton" // 点击右下角下一步
    case ot_up_coverBtn = "speedApp-uploadCoverButton" // 点击上传封面
    case ot_up_pickCoverBtn = "speedApp-pickCoverButton" // 点击截取封面
    case ot_up_publishBtn = "speedApp-videoPublishButton" // 点击发布
    case ot_up_changeCoverBtn = "speedApp-changeCoverButton" // 点击选封面返回
    case ot_up_start = "speedApp-uploadStart" // 上传开始事件
    case ot_up_fail = "speedApp-uploadFail" // 上传中断/失败事件
    case ot_up_restart = "speedApp-uploadRestart" // 上传重试事件
    case ot_up_success = "speedApp-uploadSuccess" // 上传完成
    case ot_up_publishSuccess = "speedApp-videoPublishSuccess" // 发布完成
    case ot_up_viewPopup_guideUsersToShare = "speedApp_viewPopup_guideUsersToShare_pubishVideo" // 发布成功弹出分享界面
    case ot_up_clickWechatMoments_guideUsersToShare = "speedApp_clickWechatMoments_guideUsersToShare_pubishVideo" // 分享介面点击微信朋友圈
    case ot_up_clickWechat_guideUsersToShare = "speedApp_clickWechat_guideUsersToShare_pubishVideo"
    case ot_selectVideoProductionMode = "speedApp_viewWindow_selectVideoProductionMode"
    // 分享界面点击微信好友
    /*************** 创作工具相关objectType ***************/
    case ot_makevideo_video = "video" // 视频
    case ot_makevideo_gif = "gif" // 动态图
    case ot_makevideo_jpg = "jpg" // 图片
    case ot_enterComposeToolButton = "speedApp_enterComposeToolButton" // 点击上传tab后-点击发布视频 add by ak & 视频合成入口
    case ot_enterVideoUploadButton = "speedApp_enterVideoUploadButton" // 点击上传tab后-点击上传视频
    case ot_videoCompose_overviewButton = "speedApp_videoCompose_overviewButton" // 点击总览
    case ot_videoCompose_videoCompositeButton = "speedApp_videoCompose_videoCompositeButton" // 点击去发布
    case ot_videoCompose_videoPublish = "speedApp_videoPublishButton" // 发布视频
    case ot_speedApp_searchButton = "speedApp_searchButton" // 发布视频
    case ot_pageView = "pageView" // 页面访问
    //
    // 图文入口
    case ot_speedApp_clickButton_imageAndTextGenerateVideo = "speedApp_clickButton_imageAndTextGenerateVideo"
    // 电子相册
    case ot_speedApp_clickButton_electronicAlbum = "speedApp_clickButton_electronicAlbum"
    /*************** 消息相关objectType ***************/
    case ot_msg_fansMsgButton = "speedApp_msgTab_fansMsgButton" //  粉丝消息入口
    case ot_msg_likeMsgButton = "speedApp_msgTab_likeMsgButton" //  喜欢消息入口
    case ot_msg_shareMsgButton = "speedApp_msgTab_shareMsgButton" //  分享消息入口
    case ot_msg_commentMsgButton = "speedApp_msgTab_commentMsgButton" //  评论消息入口
    case ot_msg_systemMsgButton = "speedApp_msgTab_systemMsgButton" //  通知消息入口

    /*************** 消息详情相关objectType ***************/
    case ot_msg_shareSpaceViewTab = "speedApp_message_shareSpace_viewTab" // 分享空间详情页观看
    case ot_msg_shareSpaceLikeTab = "speedApp_message_shareSpace_likeTab" // 分享空间详情页喜欢
    case ot_msg_shareSpaceCommentTab = "speedApp_message_shareSpace_commentTab" // 分享空间详情页评论
    case ot_msg_shareSpaceShareTab = "speedApp_message_shareSpace_shareTab" // 分享空间详情页分享

    /*************** 草稿箱相关objectType ***************/
    case ot_draft_clicktButton = "speedApp_clickOpenProjectListButton" // 草稿箱点击入口
    case ot_draft_editProject = "speedApp_editProject" // - 点击 Project Item（草稿箱中的每个项目）
    case ot_draft_viewProject = "speedApp_viewProject" // - 看到 Project Item（草稿箱中的每个项目）
    case ot_draft_clickEditProject = "speedApp_clickEditProject" // - 点击 Project Item 弹出菜单的「编辑」按钮
    case ot_draft_clickPublishProject = "speedApp_clickPublishProject" // - 点击 Project Item 弹出菜单的「去发布」按钮
    case ot_draft_clickRenameProject = "speedApp_clickRenameProject" // - 点击 Project Item 弹出菜单的「重命名」按钮
    case ot_draft_clickCopyProject = "speedApp_clickCopyProject" // - 点击 Project Item 弹出菜单的「复制」按钮
    case ot_draft_clickDeleteProject = "speedApp_clickDeleteProject" // - 点击 Project Item 弹出菜单的「删除」按钮
    case ot_draft_uploadMaterial = "speedApp_uploadMaterial" // - 素材开始上传事件
    case ot_draft_uploadMatrialSuccess = "speedApp_uploadMatrialSuccess" // - 素材上传成功事件
    case ot_draft_downloadMaterial = "speedApp_downloadMaterial" // - 素材开始下载事件
    case ot_draft_downloadMaterialSuccess = "speedApp_downloadMaterialSuccess" // - 素材下载成功事件
    case ot_videoCompose_mux_complete = "speedApp_videoCompose_mux_complete" // 创作工具「合成成功」添加上报参数

    case ot_reproduce_collectionClicButton = "speedApp_clickReproduceButton_collection" // - 再创作集合页的「再创作按钮」
    case ot_reproduce_clickButton = "speedApp_clickReProduceButton" // 再创作按钮（右上角）点击上报
    case ot_reproduce_collectionBar = "speedApp_clickReproduceCollectionBar" // 再创作按钮（左下角）点击上报
    case ot_reproduce_collectionVideo = "speedApp_clickReproduceCollectionVideo" // 再创作集合页的「视频」点击上报
    case ot_reproduce_sameSourceButton = "speedApp_viewSameSourceButton" // 再创作查看同款来源按钮
    case ot_reproduce_saveProjectToDraftBox = "speedApp-saveProjectToDraftBox" // 创作工具「保存项目成功」添加上报参数
    // add by ak
    case speedApp_viewWindow_upload2Compose // 「上传转创作」：窗口曝光
    case speedApp_clickButton_upload2Compose_addMusic // 「上传转创作」：加音乐 - 按钮点击
    case speedApp_clickButton_upload2Compose_addText // 「上传转创作」：加语音 - 按钮点击
    case speedApp_clickButton_upload2Compose_addVoice // 「上传转创作」：加语音 - 按钮点击
    case speedApp_clickButton_upload2Compose_addCompose // 上传转创作」：加多段拼接 - 按钮点击
    case speedApp_clickButton_upload2Compose_processingVideo // 「上传转创作」：加工视频 - 按钮点击
    case speedApp_clickButton_upload2Compose_publish // 「上传转创作」：直接发布 - 按钮点击
    case speedApp_viewButton_uploadCoverButton // 「发布页」：修改封面 - 按钮曝光
    case speedApp_viewButton_uploadCoverTipButton // 修改封面提示 - 按钮曝光
    case speedApp_clickButton_uploadCoverButton // 「发布页」：修改封面 - 按钮点击
    case speedApp_clickButton_uploadCoverTipButton

    case speedApp_viewButton_addMusic // 「创作工具页」：添加音乐 - 按钮曝光
    case speedApp_clickButton_addMusic // 「创作工具页」：添加音乐 - 按钮点击
    case speedApp_viewButton_addMusicTip // 创作工具页」：添加音乐提示 - 按钮曝光
    case speedApp_clickButton_addMusicTip // 「创作工具页」：添加音乐提示 - 按钮点击

    /*************** 卡点视频相关objectType ***************/
    case ot_click_syncedUpMusic = "speedApp_clickButton_syncedUpMusic" // 弹出面板中点击「卡点视频」按键
    case ot_view_selectSyncedUpMaterial = "speedApp_viewWindow_selectSyncedUpMaterial" // 曝光上报：卡点视频素材选择页
    case ot_click_confirmMaterial = "speedApp_clickButton_confirmSyncedUpMaterial" // 点击上报：卡点视频素材确认按钮
    case ot_click_back = "speedApp_clickButton_back" // 点击上报：返回按钮
    case ot_view_selectSyncedUpMusic = "speedApp_viewWindow_selectSyncedUpMusic" // 曝光上报：卡点视频音乐选择页
    case ot_view_syncedUpMusic = "speedApp_viewButton_syncedUpMusic" // 曝光上报：音乐素材曝光
    case ot_click_auditionMusic = "speedApp_clickButton_auditionMusic" // 点击上报：音乐素材试听
    case ot_click_chooseMusic = "speedApp_clickButton_chooseMusic" // 点击上报：选择音乐素材
    case ot_click_chooseMusicCategory = "speedApp_clickButton_chooseMusicCategory" // 点击上报：选择音乐分类
    case ot_click_chooseMusicCategoryTag = "speedApp_clickButton_chooseMusicCategoryTag" // 点击上报：选择音乐分类下的 TAG
    case ot_view_previewSyncedUp = "speedApp_viewWindow_previewSyncedUp" // 曝光上报：预览页面曝光上报
    case ot_click_selectMusic = "speedApp_clickButton_selectMusic" // 点击上报：重新选择音乐
    case ot_click_selectRhythm = "speedApp_clickButton_selectRhythm" // 点击上报：选择节奏
    case ot_click_dragFront = "speedApp_clickButton_dragFront" // 点击上报：拖动拖拽条（左部分）
    case ot_click_dragBehind = "speedApp_clickButton_dragBehind" // 点击上报：拖动拖拽条（右部分）
    case ot_click_commit = "sppedApp_clickButton_commit" // 点击上报：去合成
    case ot_view_searchSyncedUpMusic = "speedApp_viewWindow_searchSyncedUpMusic" // 曝光上报：音乐素材搜索页
    case ot_click_searchSyncedUpMusic = "speedApp_clickButton_searchSyncedUpMusic" // 点击上报：用户在搜索框输入文字然后按回车
    case ot_view_searchMusic = "speedApp_viewButton_searchMusic" // 曝光上报：搜索结果音乐素材曝光
    case ot_click_auditionSearchMusic = "speedApp_clickButton_auditionSearchMusic" // 点击上报：试听音乐素材
    case ot_click_chooseSearchMusic = "speedApp_clickButton_chooseSearchMusic" // 点击上报：选择音乐素材
    case ot_view_publishSyncedUp = "speedApp_viewWindow_publishSyncedUp" // 曝光上报：窗口曝光
    case ot_click_shareWechat = "speedApp_clickButton_shareWechat" // 点击上报：分享微信
    case ot_click_shareWechatMoment = "speedApp_clickButton_shareWechatMoment" // 点击上报：分享朋友圈
    case ot_click_finished = "speedApp_clickButton_finished" // 点击上报：完成
}

// MARK: - 视频上报类型

/// 视频上报类型
public  enum  businessType: String {
    /*************** 视频相关businessType ***************/
    case bt_videoView = "videoView" //  视频展示到屏幕，在此APP中 首页中：视频展示但未播放时，用于后端算法相关逻辑 相关推荐：在播放中下部展示出相关推荐的3个视频时，上报这3个视频的videoView。同一次播放下不重复上报3个推荐视频的videoView
    case bt_videoPreView = "videoPreView"
    case bt_videoPlaySlow = "videoPlaySlow"
    case bt_videoPlayError = "videoPlayError" // 播放失败
    case bt_aliasBindingError = "aliasBindingError" // 绑定别名失败
    case bt_videoPlaySuccessTime = "videoPlaySuccessTime" // 加载时长
    case bt_videoPlayException = "videoPlayException"
    case bt_videoPlay_normal = "videoPlay"
    public  enum  bt_videoPlay: String {
        case bt_videoPlay_userSlideSingle = "userSlideSingle" // 用户在沉浸态下滑动切换视频（极速版、爱电影）
        case bt_videoPlay_userClickCover = "userClickCover" // 用户点击封面播放
        case bt_videoPlay_userSlideList = "userSlideList" // 用户在列表中滑动停止导致的播放
        case bt_videoPlay_autoNext = "autoNext" // 自动播放下一个视频
        case bt_videoPlay_autoStart = "autoStart" // 1、启动后自动播第一个视频 2、播放器出问题导致重新播放 3、别的页面返回之前的页面播放
    }

    case bt_videoShareH5 = "videoShareH5" // 点击分享朋友圈按键
    case bt_videoShareFriend = "videoShareFriend" // 点击分享好友按键
    case bt_videoSemiRealPlay = "videoSemiRealPlay" // 视频播放到10s时上报
    case bt_videoRealPlay = "videoRealPlay" // 视频播放到20s或播放到总时长30%，哪个先到为准
    case bt_videoPlaySuccess = "videoPlaySuccess" // 视频缓冲完成开始播放
    case bt_videoPlayEnd = "videoPlayEnd" // 视频播放到总时长100%
    case bt_videoFavorite = "videoFavorite" // 视频喜欢的上报
    case bt_videoEnterUser = "videoEnterUserHomepage" // 在视频页点击 Up 主头像进入个人主页
    case bt_videoSwipeRight = "videoSwipeRight" // 右滑查看视频的相关推荐
    case bt_videoEnterRecom = "videoEnterRecomendation" // 点击视频的相关推荐

    /*************** 活动相关businessType ***************/
    case bt_buttonClick = "buttonClick" // 按键点击
    case bt_buttonView = "buttonView" // 按键曝光
    case bt_windowView = "windowView" // 弹窗曝光
    case bt_autoJump = "autoJump" // 自动跳转
    case bt_pageView = "pageView" // 页面访问

    /*************** 供给稳定性相关businessType ***************/
    case bt_fetchSlow = "FetchSlow" // 拉取卡顿率
    case bt_fetchFail = "FetchFail" // 拉取失败率
    case bt_fetchDuration = "FetchDuration" // 拉取时长
    case bt_dnsParseCostTime = "dnsParseCostTime" // DNS上报 "speed.piaoquantv.com", "rescdn.yishihui.com"

    /*************** 上传相关businessType ***************/
    case bt_up_process = "videoUploadProcess" // 上传开始事件
    case bt_publish_error = "publishError" // 发布失败
    case bt_publish_success = "publishSuccess" // 发布成功

    /*************** 创作工具相关businessType ***************/
    case bt_makeVideos = "makeVideos" // 创作视频
    case bt_materialView = "materialView" // 素材曝光
    case bt_materialUse = "materialUse" // 用户选取
    case bt_materialCompose = "materialCompose" // 素材合成

    /*************** 消息相关businessType ***************/
    case bt_draft_downloadMaterialSuccess = "downloadMaterialSuccess" // 素材下载成功事件
    case bt_draft_downloadMaterial = "downloadMaterial" // - 素材开始下载事件
    case bt_draft_uploadMaterialSuccess = "uploadMaterialSuccess" // - 素材上传成功事件
    case bt_draft_uploadMaterial = "uploadMaterial" // - 素材开始上传事件
    case bt_videoCompose_muxAction = "muxAction" // 创作工具「合成成功」添加上报参数

    /*************** 广告相关businessType ***************/
    case bt_ad_request = "adRequest" // 客户端请求广告
    case bt_ad_loaded = "adLoaded" // 客户端广告加载成功
    case bt_ad_view = "adView" // 广告展示到屏幕
    case bt_ad_click = "adClick" // 广告被点击
    case bt_ad_loadedError = "adLoadedError" // 客户端广告加载失败-非需求
    case bt_ad_close = "adClose" // 广告被关闭-非需求
    case bt_ad_configRequest = "adConfigRequest" // 客户端请求广告配置
    case bt_ad_configLoaded = "adConfigLoaded" // 客户端请求广告配置成功
}

// MARK: - autoType 自动动作的类型

/// autoType 自动动作的类型
public  enum  autoType: Int {
    case AUTO_TYPE_SCROLL_VERTICAL_DOWN = 11 // 用户手动下划触发播放(播上一个视频)
    case AUTO_TYPE_SCROLL_VERTICAL_UP = 12 // 用户手动上划触发播放（播下一个视频）
    case AUTO_TYPE_SCROLL_HORIZON_RIGHT = 13 // 用户手动右划触发播放
    case AUTO_TYPE_SCROLL_HORIZON_LEFT = 14 // 用户手动左划触发播放
    case AUTO_TYPE_ENTER_DETAIL = 15 // 用户手动点击（进详情页）触发播放
    case AUTO_TYPE_ENTER_APP = 21 // 打开APP自动播放的第一个
    case AUTO_TYPE_NEXT_AFTER_COMPLETE = 22 // 用户播放完一个视频后自动触发播放相关推荐视频
    case AUTO_TYPE_BACKEND_RESUME = 23 // 后台唤醒app，如果播放器挂了，重新播放、在别的页面播放过视频再回来之前的页面播放
    case AUTO_TYPE_REFRESH_LIST = 24 // 首页下拉刷新，自动播的第一个
    case AUTO_TYPE_CLICK_RECOMMEND = 25 // 点击推荐视频播放
    case AUTO_TYPE_CLICK_DOUBLE = 26 // 双列点击视频进入单列播放
}

// MARK: - 消息动作:表示该条日志属于某条消息生命周期的哪个漏斗环节

/// 消息动作:表示该条日志属于某条消息生命周期的哪个漏斗环节
public  enum  actionType: String {
    case at_msg_backendReturn = "backendReturn" // 后端将消息返回给客户端
    case at_msg_frontendPull = "frontendPull" // 客户端获取到
    case at_msg_view = "view" // 在客户端消息被滑动展示在屏幕上
    case at_msg_click = "click" // 用户点击消息
}

// MARK: - 消息类型

/// 消息类型
public  enum  messageType: Int {
    case mt_nomal = 0 // 未知消息
    case mt_fans = 1 // 粉丝消息
    case mt_like = 2 // 喜欢/赞
    case mt_share = 3 // 分享消息
    case mt_comment = 4 // 评论消息
    case mt_notification = 5 // 通知消息
    case mt_share_dynamics = 6 // 分享动态消息
    /*** 自定义添加不涉及正式消息类型 ***/
    case mt_badgeNumber = 1001 // 显示消息个数cell
}

/// 分享空间二级界面数据请求类型  1,观看 2，分享，3，喜欢 4， 评论
public  enum  sharePageType: Int {
    case share_page_play = 1 // 分享空间-播放列表
    case share_page_share = 2 // 分享空间-分享列表
    case share_page_favorite = 3 // 分享空间-收藏列表
    case share_page_commnet = 4 // 分享空间-评论列表
}

// MARK: - 消息子类型

/// 消息子类型
public  enum  messageSubType: Int {
    case mtsub_nomal = 0 // 未知消息
    case mtsub_fansAtt = 101 // 粉丝-关注
    case mtsub_fansSbs = 102 // 粉丝-订阅
    case mtsub_likeColl = 201 // 喜欢-收藏视频
    case mtsube_likePrai = 202 // 喜欢-评论点赞
    case mtsub_shareWechat = 301 // 分享-微信会话
    case mtsub_shareFriend = 302 // 分享-微信朋友圈
    case mtsub_comment = 401 // 评论一级评论
    case mtsub_commentSub = 402 // 评论二级评论
    case mtsub_pushSucc = 501 // 通知-发布成功
    case mtsub_pushNoPass = 502 // 通知-审核不通过
    case mtsub_pushFixing = 503 // 通知-审核待修改
    case mtsub_pushTransFail = 504 // 通知-转码失败
    case mtsub_pushVideoRecom = 505 // 通知视频推荐
    case mtsub_pushAccForbi = 506 // 通知-账号封禁
    case mtsub_pushAccUnban = 507 // 通知-账号解封
    case mtsub_pushIncStart = 508 // 通知-激励开始
    case mtsub_pushIncEnd = 509 // 通知-激励结束
    case mtsub_pushIncRupt = 510 // 通知-激励中断
    case mtsub_shareSpace = 601 // 分享空间-分享
    case mtsub_shareSpLike = 602 // 分享空间-喜欢
    case mtsub_shareSpComm = 603 // 分享空间-评论
    case mtsub_shareSpPlay = 604 // 分享空间-播放
    case mtsub_shareSpMerge = 605 // 分享空间-外层合并消息(与业务逻辑无关，埋点上报使用)
}

// MARK: - 埋点上报消息类型（暂未统一）

/// 埋点上报消息类型（暂未统一）
public  enum  messagePointType: Int {
    case mt_point_nomal = 0 // 未知消息
    case mt_point_fans = 1 // 粉丝消息
    case mt_point_praise = 2 // 赞
    case mt_point_barrage = 3 // 弹幕消息
    case mt_point_comment = 4 // 评论消息
    case mt_point_share = 5 // 分享消息
    case mt_point_collect = 6 // 收藏消息
    case mt_point_notification = 7 // 通知消息
    case mt_point_operative = 8 // 运营消息
    case mt_point_dynamics = 1000 // 分享动态消息
}

// MARK: - 日志库类型

/// 日志库类型
public  enum  statisticsLogType: Int {
    case st_log_type_abtestinfo = 10 // abtestinfo-Log ABTEST的 dlog Store
    case st_log_type_operation = 20 // operation-Log 漏斗模型的相关上报
    case st_log_type_simpleevent = 30 // simpleevent-Log 独立事件的相关上报
    case st_log_type_frontend = 40 // frontend-Log 前端调试日志
    case st_log_type_pLayaction = 50 // pLayaction-Log 播放行为日志上报
    case st_log_type_useractive = 60 // useractive-Log 用户活跃日志上报
    case st_log_type_videoPlayTracking = 70 // video-play-tracking 视频播放行为跟踪
    case st_log_type_proauceSearch = 80 // proauce-search-log 素材搜索日志上报
    case st_log_type_videoCompose = 90 // video-compose-log 创作工具素材搜索日志上报
    case st_log_type_location = 100 // user-location-log 位置信息日志上报
    case st_log_type_videoProduction = 110 // video-production-log 创作工具埋点日志上报
    case st_log_type_adAction = 120 // ad-action-log 广告埋点日志上报
}

// MARK: - 冷启动方式

/// coldLaunchType // 冷启动方式。若为热启动，则不用上报该字段
public  enum  coldLaunchType: String {
    case coldLaunchType_userActiveOpen = "userActiveOpen" // 用户主动打开
    case coldLaunchType_appRecall = "appRecall" // 其它APP唤起，包括H5应用宝唤起
    case coldLaunchType_pushRecall = "pushRecall" // 推送唤起
}

// MARK: - 上报日志类型

/// 上报日志类型
public  enum  reportLogType {
    case reportLogType_view // 显示页面
    case reportLogType_realPlay // 真实播放 视频播放到20s或播放到总时长30%，哪个先到为准
    case reportLogType_play // 记录播放的视频
    case reportLogType_Action // 上报视频动作记录
    case reportLogType_Frontend // 通用上报
}

// MARK: - 底部tab

/// 底部tab
public  enum  TAB_PAGETYPE: String {
    case TAB_PAGETYPE_NORMAL = "nomalTab" // 默认
    case TAB_PAGETYPE_RECOMM = "categoryTab" // 推荐
    case TAB_PAGETYPE_ATTEN = "followTab" // 关注
    case TAB_PAGETYPE_PUBLISH = "publishTab" // 发布
    case TAB_PAGETYPE_MESSAGE = "messageTab" // 消息
    case TAB_PAGETYPE_MINE = "mineTab" // 我的
}

// MARK: - 刷新控件类型

/// 刷新控件类型
public  enum  REFRESH_TYPE {
    case REFRESH_TYPE_ALL // 推荐
    case REFRESH_TYPE_HEADER // 头部
    case REFRESH_TYPE_FOOTER // 尾部
}

// MARK: - 关注跟粉丝cell类型

/// 关注跟粉丝cell类型
public  enum  atttendAndFansCellType {
    case cellType_attend // 关注
    case cellType_fans // 粉丝
    case cellType_banned // 黑名单
}

// MARK: - 视频全屏播放操作类型

/// 视频全屏播放操作类型
public  enum  fullScreenActionType {
    case volume // 声音
    case brightness // 亮度
    case progress // 进度
}

// MARK: - 活动提示页类型

/// 活动提示页类型
public  enum  activityRemindType {
    case nomal //
    case newUser // 新用户专享
    case yesterDay_finish // 昨日已完成
    case yesterDay_unfinish // 昨日未完成
    case today_finish // 今日任务已完成
}

// MARK: - 制作工具素材搜索msgType

/// 制作工具素材搜索msgType
public  enum  material_msgType: String {
    case all = "ALL_SEARCH_EVENT" // 搜索所有
    case image = "IMAGE_SEARCH_EVENT" // 图片搜索
    case video = "VIDEO_SEARCH_EVENT" // 视频搜索
    case gif = "GIF_SEARCH_EVENT" // 动图搜索
    case recommend_image = "IMAGE_RECOMMEND_EVENT" // 图片推荐搜索
    case recommend_video = "VIDEO_RECOMMEND_EVENT" // 视频推荐搜索
    case recommend_gif = "GIF_RECOMMEND_EVENT" // 动图推荐搜索
}

// 画布类型
public  enum  videoCanvasType: Int {
    case origin = 1 // 原始
    case nineToSixteen = 2 // 9:16
    case oneToOne = 3 // 1:1
    case sixteenToNine = 4 // 16:9
}

/// 贴纸类型
public  enum  StickerType: String {
    case UNKONW = "unknow"
    case IMAGE = "image" // 图片
    case VIDEO = "video" // 视频
    case GIF = "gif" // gif动图
    case VOICE = "voice" // 声音
    case FILE = "file" // 文件
    case SUBTITLE = "subtitle" // 字幕
    /// 获取index
    /// - Returns: description
    public func index() -> Int {
        var fileType: Int = 0
        switch self {
        case .IMAGE:
            fileType = 1
        case .VIDEO:
            fileType = 2
        case .VOICE:
            fileType = 3
        case .FILE:
            fileType = 4
        case .GIF:
            fileType = 5
        case .SUBTITLE:
            fileType = 6
        default:
            fileType = 0
        }
        return fileType
    }

    /// 媒体类型
    /// - Returns: <#description#>
   public func mimeType() -> String {
        var mimeType: String = "application/octet-stream"
        switch self {
        case .IMAGE:
            mimeType = "image/jpeg"
        case .VIDEO:
            mimeType = "video/mpeg"
        case .VOICE:
            mimeType = "audio/mpeg"
        case .FILE:
            mimeType = "application/octet-stream"
        case .GIF:
            mimeType = "image/gif"
        default:
            mimeType = "application/octet-stream"
        }
        return mimeType
    }

   public func pathExtension() -> String {
        var pathExtension: String = ""
        switch self {
        case .IMAGE:
            pathExtension = "png"
        case .VIDEO:
            pathExtension = "mp4"
        case .VOICE:
            pathExtension = "mp3"
        case .FILE:
            pathExtension = ""
        case .GIF:
            pathExtension = "gif"
        default:
            break
        }
        return pathExtension
    }
}

// MARK: - 贴纸裁剪方式

/// 贴纸裁剪方式
public  enum  stickerContentModeDef: Int {
    case aspectFit = 0 // 自适应
    case aspectFill = 1 // 铺满
}

/// 贴纸裁剪方式 add by ak v2
public  enum  stickerContentMode: String {
    case aspectFitStr = "complete" // 完整显示(有黑边)
    case aspectFillStr = "full" // 铺满
}

// MARK: - 适配模式

/// 适配模式
public  enum  adapterModeDef: Int {
    case speedyAuto = 0 // 快速自适应
    case loopAuto = 1 // 自动循环
    case crop = 2 // 定帧/裁剪
}

/// 适配模式 add by ak  v2
public  enum  adapterMode: String {
    case multiple // 快速自适应
    case loopAuto = "loop" // 自动循环
    case staticFrame // 定帧/裁剪
}

// MARK: - 上传视频类型

/// 上传视频类型
public  enum  videoUploadSourceType: String {
    case videoUpload // 上传
    case videoCompose // 合成制作
    case videoUploadToCompose // 上传转合成制作
}

// MARK: - 进入创作工具入口

/// 素材上传、保存、收藏相关
public  enum  videoMakeEntranceType: String {
    case entranceMineTabDraft = "draft_metab" // 我的Tab -> 草稿箱列表 -> 创作工具
    case entrancePublicTabDraft = "draft_uploadpopup" // 发布Tab -> 草稿箱列表 -> 创作工具
    case entrancePublicTabCompose = "composeVideo" // 发布Tab -> 视频合成 -> 创作工具
    case entrancePublicTabImageText = "imageTextGenerate" // 发布Tab -> 图文生成视频 -> 创作工具
    case entrancePublicTabAlbum = "electronicAlbum" // 发布Tab -> 电子相册 -> 创作工具
    case entranceReproduction = "reproduction" // 视频详情 -> 做同款 -> 创作工具
    case entrancePublicTabUpload = "upload" // 发布Tab -> 上传视频 -> 直接发布
    // add by ak
    case entranceUpload2compose = "upload2compose" // 发布Tab -> 上传视频 -> 加工视频 -> 创作工具
    case entranceStuckPointPublic = "syncedUpVideo" // 卡点视频发布

    // * 新添加-自定义
    case entrancePublicTabAddMusic = "addMusic" // 发布Tab -> 上传视频 -> 加音乐 -> 创作工具
    case entrancePublicTabAddSubtitle = "addSubtitle" // 发布Tab -> 上传视频 -> 加字幕 -> 创作工具
    case entrancePublicTabAddVoice = "addVoice" // 发布Tab -> 上传视频 -> 加语音 -> 创作工具
    case entrancePublicTabAddSection = "addSection" // 发布Tab -> 上传视频 -> 多段拼接 -> 创作工具
}

// MARK: - 段落类型

/// 段落类型
public  enum  sectionType: String {
    case normal // 普通段
    case global // 全局段
}

// MARK: - 音乐类型

/// 音乐类型
public  enum  VOICETYPT: String {
    case PRODUCE = "produce" // 合成语音
    case BGM = "bgm" // 背景音乐
    case SPEECH = "speech" // 录音
    case LOCAL = "local" // 导入文件
}

// MARK: - 输入框状态B

/// 输入框状态
public  enum  inputStatus {
    case normal // 写故事，可智能配音，自动生成字幕
    case inputing // 输入中
    case recording // 语音识别成文字中…
    case recordEmpty // 录音未识别到文字，点此输入
    case recordError // 获取录音文字失败，请重试
    case recordSuccess // 获取录音文字成功
}

// MARK: - 画面比例

/// 画面比例
public  enum  aspectRatio {
    case origin(width: CGFloat, height: CGFloat) // 原始
    case oneToOne // 1:1
    case sixteenToNine // 16:9
    case nineToSixteen // 9:16
}

// MARK: - 卡点视频音乐页面类型

/// 卡点视频音乐页面类型
public  enum  stuckPointMusicContentType {
    case catagery
    case serach
    case page
}

// 视频发布来源场景 1：普通上传 2：创作工具，3：普通上传转创作工具，4：后台转换加工，5：卡点视频制作
public  enum  videoFromScene: Int {
    case UploadNormal = 1 // 普通上传
    case UploadMakeVideo = 2 // 创作工具
    case UploadNormalToMakeVideo = 3 // 普通上传转创作工具
    case server = 4 // 后台转换加工
    case stuckPoint = 5 // 卡点视频制作
}

// MARK: - 广告来源渠道

/// 广告来源渠道
public  enum  adChannel: String {
    case wechat // 微信广告
    case byteDouce = "pangle" // 穿山甲广告（字节跳动）
    case pdd // 多多进宝广告（拼多多）
    case gdt = "qq" // 腾讯优量汇
}

// MARK: - 广告类型

/// 广告类型
public  enum  adType: Int {
    case banner = 1 // Banner 广告（即：固定位展示广告）
    case drawVideo = 2 // 信息流视频广告
    case preMovie = 3 // 贴片广告（场景举例：暂停贴片广告）
    case tableScreen = 4 // 插屏广告（场景举例：退出全屏，弹出的插屏广告）
    case splash = 5 // 开屏广告
}

// MARK: - 广告投放人群

/// 广告投放人群
public  enum  adCrowd: Int {
    case highCrowd = 1 // 高分享人群
    case mediumCrowd = 2 // 中分享人群
    case lowCrowd = 3 // 低分享人群
}

// MARK: - 广告内部位置值

/// 广告内部位置值
public  enum  adPosition: String {
    case splashAd // 票圈视频 App 闪屏页广告位
    case videoFlowAd // 票圈视频 App 视频流广告位
}


// MARK: - 风格

/// 风格
public  enum  styleColor: String {
    case nomal = "#F1034D"
    case green = "#3DC1C1"
    case red = "#EE0051"
}

// MARK: - statusBar

/// statusBar
public enum  statusBarStyle {
    case light
    case dark
}
