package com.tzld.piaoquan.api.model.param.contentplatform;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class VideoApiBaseParam {

	//用户登陆相关的参数
	@ApiModelProperty(value = "公共参数-登录用户ID")
	private Long loginUid;
	@ApiModelProperty(value = "公共参数-token值")
	private String token;

	//APP相关的参数
	@ApiModelProperty(value = "公共参数-版本号")
	private Integer versionCode;
	@ApiModelProperty(value = "公共参数-app发布版本")
	private String versionName;
	@ApiModelProperty(value = "公共参数-产品类型:0-VLOG,1-轻趣视频,2-搞笑视频,3-爱电影,4-爱生活,5-长视频,6-短视频,7-惊奇视频,8-PC端,9-票圈长视频APP,10-票圈长视频lite,11-票圈相册,12-H5,13-票圈视频APP,14-小程序极速版,15-闪音卡点APP,16-社区APP")
	private Integer appType;
	@ApiModelProperty(value = "公共参数-appid")
	private String appId;

	//手机设备信息相关的参数
	@ApiModelProperty(value = "公共参数-手机设备的唯一码")
	private String machineCode;
	@ApiModelProperty(value = "公共参数-ios,android")
	private String platform;
	@ApiModelProperty(value = "公共参数-精确到ios,android的哪个版本")
	private String system;
	@ApiModelProperty(value = "公共参数-手机信息")
	private String machineInfo;
	@ApiModelProperty(value = "公共参数-网络类型")
	private String networkType;
	@ApiModelProperty(value = "公共参数-客户端ip")
	private String clientIp;

	//pageSource相关的参数
	@ApiModelProperty(value = "公共参数-页面来源")
	private String pageSource;
	@ApiModelProperty(value = "公共参数-页面分类ID，只在首页分发列表中才有")
	private Long pageCategoryId;
	@ApiModelProperty(value = "公共参数-root页面来源")
	private String rootPageSource;
	@ApiModelProperty(value = "公共参数-root页面分类ID")
	private Long rootPageCategoryId;
	@ApiModelProperty(value = "公共参数-root页面时间戳")
	private Long rootPageTimestamp;

	//某次操作相关的参数
	@ApiModelProperty(value = "公共参数-小程序打开类型")
	private String openType;
	@ApiModelProperty(value = "公共参数-前端请求时间")
	private Long clientTimestamp;
	@ApiModelProperty(value = "公共参数-sessionId")
	private String sessionId;

	//视频相关的参数
	@ApiModelProperty(value = "公共参数-视频加载时长，毫秒")
	private Long videoLoadTime;
	@ApiModelProperty(value = "公共参数-视频事件发生的时间点，相对于视频时长，秒")
	private Long videoEventTime;
	@ApiModelProperty(value = "公共参数-videoPlayError事件，播放器返回的错误信息")
	private String errorMsg;

	//分享相关的参数
	@ApiModelProperty(value = "公共参数-分享的深度")
	private Integer shareDepth;
	@ApiModelProperty(value = "公共参数-分享者手机设备的唯一码，只有在分享页才有")
	private String shareMachineCode;
	@ApiModelProperty(value = "公共参数-分享者uid，只有在分享页才有")
	private Long shareUid;
	@ApiModelProperty(value = "公共参数-是否为分享页标识，0：不是分享页，1：是分享页")
	private Integer sharePageFlag;
	@ApiModelProperty(value = "公共参数-分享按钮类型")
	private Integer shareButtonType;
	@ApiModelProperty(value = "公共参数-从哪个产品分享出来的")
	private Integer shareAppType;

	@ApiModelProperty(value = "公共参数-0 综合模块 1 feed流 ")
	private String sharePageType;
	@ApiModelProperty(value = "公共参数-分享页跳转")
	private String videoShareJumpModel;
	//推荐相关的参数
	@ApiModelProperty(value = "公共参数-推荐来源 0 默认")
	private Integer recommendSource = 0;

	@ApiModelProperty(value = "公共参数-视频上报数据，使用后端返回的原样数据")
	private String videoReportMeta;

	@ApiModelProperty(value = "公共参数-事件ID")
	private String eventId;
	@ApiModelProperty(value = "公共参数-root事件ID")
	private String rootEventId;

	@ApiModelProperty(value = "公共参数-root分享页面类型")
	private String rootSharePageType;
	@ApiModelProperty(value = "公共参数-自动标志位类型")
	private String autoType;
	@ApiModelProperty(value = "公共参数-动作发生的页面位置")
	private String actionPosition;

	@ApiModelProperty(value = "公共参数-运营消息ID")
	private String operationMsgId;
	@ApiModelProperty(value = "公共参数-playId")
	private String playId;
	@ApiModelProperty(value = "公共参数-活动id")
	private String activityId;

	@ApiModelProperty(value = "公共参数-AB信息")
	private String abInfoData;

	// h5
	@ApiModelProperty(value = "公共参数-h5分享id")
	private String h5ShareId;
	@ApiModelProperty(value = "公共参数-h5打开场景")
	private String h5OpenFrom;
	@ApiModelProperty(value = "公共参数-h5分享场景")
	private String h5ShareFrom;
	@ApiModelProperty(value = "公共参数-h5页面-小程序分享根源rootPageSource")
	private String h5WxRootPageSource;

	@ApiModelProperty(value = "公共参数-搜索上报")
	private String searchActionCode;

	@ApiModelProperty(value = "公共参数-AB的根实验集合")
	private String rootEventIds;

	@ApiModelProperty(value = "公共参数-returnId")
	private String returnId;
	@ApiModelProperty(value = "公共参数-viewId")
	private String viewId;
	@ApiModelProperty(value = "公共参数-shareId")
	private String shareId;
	@ApiModelProperty(value = "公共参数-subSessionId")
	private String subSessionId;

	@ApiModelProperty(value = "公共参数-headVideoId")
	private String headVideoId;
    @ApiModelProperty(value = "公共参数-推荐链路ID")
    private String recommendId;
	@ApiModelProperty(value = "公共参数-推荐日志对象")
	private String recommendLogVO;

	@ApiModelProperty(value = "公共参数-分享ID")
	private String jumpHomeVideoId;
	@ApiModelProperty(value = "公共参数-根分享ID")
	private String rootJumpHomeVideoId;

	@ApiModelProperty(value = "公共参数-小程序打开场景")
	private Integer senceType=-1;
	@ApiModelProperty(value = "公共参数-小程序打开场景 热启动")
	private Integer hotSenceType;
	@ApiModelProperty(value = "公共参数-rootMid")
	private String rootMid;
	@ApiModelProperty(value = "公共参数-渠道：yybstore xmstore hwstore oppostore vivostore sougou bdstore mzstore store360 douyin kuaishou")
	private String appChannel;
	//	@ApiModelProperty(value = "微信AB实验参数 例如：22031801")
//	private String wechatAbcode;
	@ApiModelProperty(value = "通过微信实验分流获取到的对应数据")
    private String abExpInfo; //Map<String, List<AbExpItemDTO>>
    @ApiModelProperty(value = "H5")
    private Long adBlockVideoId;

    private Boolean showDistribute;

    private Boolean showShare;

    private Boolean showFocusExp;

    private Boolean isFirstPageOrFirstPageFeed;

	private String newExpGroup;

	private Boolean isTest;
	/**
	 * 代表用户来自哪个外部来源，包括：公众号文章、投流等等，
	 */
	private String rootSourceId;
	/**
	 * 代表一个通过分享卡片进入的用户，他最初来自哪个用户mid的分享
	 */
	private String rootShareMid;
	/**
	 * 代表一个通过分享卡片进入的用户，他最初来自哪个用户mid的哪次冷启动sessionId的分享
	 */
	private String rootSessionId;

	private String rootShareId;
	/**
	 * 微信群ID
	 */
	private String openGId;

}
