package com.zanxiang.game.data.serve.pojo.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GamePromoteTotalVO {
    private String id;

    @ApiModelProperty(notes = "sdk来源")
    private String sourceSystem;

    @ApiModelProperty(notes = "渠道id")
    private Long agentId;

    @ApiModelProperty(notes = "渠道名称")
    private String agentName;
    @ApiModelProperty(notes = "推广账号类型")
    private String accountType;
    @ApiModelProperty(notes = "推广账号ID")
    private String accountId;

    @ApiModelProperty(notes = "投手名")
    private String sysUserName;

    @ApiModelProperty(notes = "cp名")
    private String cpName;

    @ApiModelProperty(notes = "游戏id")
    private Long gameId;

    @ApiModelProperty(notes = "游戏名")
    private String gameName;
    @ApiModelProperty(notes = "游戏应用类型")
    private String gameType;

    @ApiModelProperty(notes = "投手id")
    private Long sysUserId;

    @ApiModelProperty(notes = "消耗")
    private BigDecimal cost;

    @ApiModelProperty(notes = "广告计划数量")
    private Long adPlanCount;

    @ApiModelProperty(notes = "曝光数")
    private Long viewCount;

    @ApiModelProperty(notes = "点击数")
    private Long clickCount;

    @ApiModelProperty(notes = "转化量")
    private Long convertCount;

    @ApiModelProperty(notes = "转化率（目标转化率）=转化量/点击量100%")
    private BigDecimal convertRate;

    @ApiModelProperty(notes = "平均转化成本=实际消耗/转化量")
    private BigDecimal avgConvertCost;

    @ApiModelProperty(notes = "深度转化量")
    private Long deepConvertCount;

    @ApiModelProperty(notes = "深度转化成本=实际消耗/深度转化量")
    private BigDecimal deepConvertCost;

    @ApiModelProperty(notes = "深度转化率=深度转化量/转化量100%")
    private BigDecimal deepConvertRate;

    @ApiModelProperty(notes = "千次曝光成本=实际消耗/曝光量1000")
    private BigDecimal thousandViewCost;

    @ApiModelProperty(notes = "点击率=点击量/曝光量100%")
    private BigDecimal clickRate;

    @ApiModelProperty(notes = "平均点击均价=实际消耗/点击量")
    private BigDecimal avgClickCost;

    @ApiModelProperty(notes = "应用下载量")
    private Long appDownloadCount;

    @ApiModelProperty(notes = "应用下载成本=实际消耗/安卓下载开始数")
    private BigDecimal appDownloadCost;

    @ApiModelProperty(notes = "应用下载率=安卓下载开始数/点击数")
    private BigDecimal appDownloadRate;

    @ApiModelProperty(notes = "应用下载完成量")
    private Long downloadFinish;

    @ApiModelProperty(notes = "应用安装量")
    private Long appInstallCount;

    @ApiModelProperty(notes = "应用安装成本=实际消耗/安卓安装完成数")
    private BigDecimal appInstallCost;

    @ApiModelProperty(notes = "应用安装率=安卓安装完成数/安卓下载完成数")
    private BigDecimal appInstallRate;

    @ApiModelProperty(notes = "应用下载完成成本=实际消耗/安卓下载完成数")
    private BigDecimal downloadFinishCost;

    @ApiModelProperty(notes = "应用下载完成率=安卓下载完成数/安卓下载开始数")
    private BigDecimal downloadFinishRate;

    @ApiModelProperty(notes = "应用激活数")
    private Long appActiveCount;

    @ApiModelProperty(notes = "应用激活成本=实际消耗/激活数")
    private BigDecimal appActiveCost;

    @ApiModelProperty(notes = "应用激活率=激活数/点击数100%")
    private BigDecimal appActiveRate;

    @ApiModelProperty(notes = "注册人数")
    private Long regUserCount;

    @ApiModelProperty(notes = "注册成本=实际消耗/注册人数")
    private BigDecimal regCost;

    @ApiModelProperty(notes = "首日新用户充值次数")
    private Long firstUserRechargeCount;

    @ApiModelProperty(notes = "首日新用户充值人数")
    private Long firstUserRechargeUser;

    @ApiModelProperty(notes = "首日新用户充值金额")
    private BigDecimal firstUserRechargeMoney;

    @ApiModelProperty(notes = "新用户充值次数")
    private Long userRechargeCount;

    @ApiModelProperty(notes = "新用户充值人数")
    private Long userRechargeUser;

    @ApiModelProperty(notes = "不展示字段--新用户复充人数")
    private Long repeatRechargeUser;

    @ApiModelProperty(notes = "新用户充值金额")
    private BigDecimal userRechargeMoney;

    @ApiModelProperty(notes = "老用户充值次数")
    private Long oldUserRechargeCount;

    @ApiModelProperty(notes = "老用户充值人数")
    private Long oldUserRechargeUser;

    @ApiModelProperty(notes = "老用户充值金额")
    private BigDecimal oldUserRechargeMoney;

    @ApiModelProperty(notes = "账面充值次数")
    private Long showRechargeCount;

    @ApiModelProperty(notes = "账面充值人数")
    private Long showRechargeUser;

    @ApiModelProperty(notes = "账面充值金额")
    private BigDecimal showRechargeMoney;

    @ApiModelProperty(notes = "新用户累计充值次数")
    private Long newUserRechargeCount;

    @ApiModelProperty(notes = "新用户累计充值人数")
    private Long newUserRechargeUser;

    @ApiModelProperty(notes = "新用户累计充值金额")
    private BigDecimal newUserRechargeMoney;

    @ApiModelProperty(notes = "首日回收率=首日新用户充值金额/实际消耗")
    private BigDecimal firstRecoveryRate;

    @ApiModelProperty(notes = "当日回收率=新用户累计充值金额/实际消耗")
    private BigDecimal todayRecoveryRate;

    @ApiModelProperty(notes = "回收率=新用户充值金额/实际消耗")
    private BigDecimal recoveryRate;

    @ApiModelProperty(notes = "毛利额=新用户累计充值金额-实际消耗")
    private BigDecimal grossMargin;

    @ApiModelProperty(notes = "1日ROI=新用户1日累计充值金额/实际消耗")
    private BigDecimal roiDay1;

    @ApiModelProperty(notes = "2日ROI=新用户2日累计充值金额/实际消耗")
    private BigDecimal roiDay2;

    @ApiModelProperty(notes = "3日ROI=新用户3日累计充值金额/实际消耗")
    private BigDecimal roiDay3;

    @ApiModelProperty(notes = "4日ROI=新用户4日累计充值金额/实际消耗")
    private BigDecimal roiDay4;

    @ApiModelProperty(notes = "5日ROI=新用户5日累计充值金额/实际消耗")
    private BigDecimal roiDay5;

    @ApiModelProperty(notes = "6日ROI=新用户6日累计充值金额/实际消耗")
    private BigDecimal roiDay6;

    @ApiModelProperty(notes = "7日ROI=新用户7日累计充值金额/实际消耗")
    private BigDecimal roiDay7;

    @ApiModelProperty(notes = "8日ROI=新用户8日累计充值金额/实际消耗")
    private BigDecimal roiDay8;

    @ApiModelProperty(notes = "9日ROI=新用户9日累计充值金额/实际消耗")
    private BigDecimal roiDay9;

    @ApiModelProperty(notes = "10日ROI=新用户10日累计充值金额/实际消耗")
    private BigDecimal roiDay10;

    @ApiModelProperty(notes = "11日ROI=新用户11日累计充值金额/实际消耗")
    private BigDecimal roiDay11;

    @ApiModelProperty(notes = "12日ROI=新用户12日累计充值金额/实际消耗")
    private BigDecimal roiDay12;

    @ApiModelProperty(notes = "13日ROI=新用户13日累计充值金额/实际消耗")
    private BigDecimal roiDay13;

    @ApiModelProperty(notes = "14日ROI=新用户14日累计充值金额/实际消耗")
    private BigDecimal roiDay14;

    @ApiModelProperty(notes = "15日ROI=新用户15日累计充值金额/实际消耗")
    private BigDecimal roiDay15;

    @ApiModelProperty(notes = "16日ROI=新用户16日累计充值金额/实际消耗")
    private BigDecimal roiDay16;

    @ApiModelProperty(notes = "17日ROI=新用户17日累计充值金额/实际消耗")
    private BigDecimal roiDay17;

    @ApiModelProperty(notes = "18日ROI=新用户18日累计充值金额/实际消耗")
    private BigDecimal roiDay18;

    @ApiModelProperty(notes = "19日ROI=新用户19日累计充值金额/实际消耗")
    private BigDecimal roiDay19;

    @ApiModelProperty(notes = "20日ROI=新用户20日累计充值金额/实际消耗")
    private BigDecimal roiDay20;

    @ApiModelProperty(notes = "21日ROI=新用户21日累计充值金额/实际消耗")
    private BigDecimal roiDay21;

    @ApiModelProperty(notes = "22日ROI=新用户22日累计充值金额/实际消耗")
    private BigDecimal roiDay22;

    @ApiModelProperty(notes = "23日ROI=新用户23日累计充值金额/实际消耗")
    private BigDecimal roiDay23;

    @ApiModelProperty(notes = "24日ROI=新用户24日累计充值金额/实际消耗")
    private BigDecimal roiDay24;

    @ApiModelProperty(notes = "25日ROI=新用户25日累计充值金额/实际消耗")
    private BigDecimal roiDay25;

    @ApiModelProperty(notes = "26日ROI=新用户26日累计充值金额/实际消耗")
    private BigDecimal roiDay26;

    @ApiModelProperty(notes = "27日ROI=新用户27日累计充值金额/实际消耗")
    private BigDecimal roiDay27;

    @ApiModelProperty(notes = "28日ROI=新用户28日累计充值金额/实际消耗")
    private BigDecimal roiDay28;

    @ApiModelProperty(notes = "29日ROI=新用户29日累计充值金额/实际消耗")
    private BigDecimal roiDay29;

    @ApiModelProperty(notes = "30日ROI=新用户30日累计充值金额/实际消耗")
    private BigDecimal roiDay30;

    @ApiModelProperty(notes = "60日ROI=新用户60日累计充值金额/实际消耗")
    private BigDecimal roiDay60;

    @ApiModelProperty(notes = "90日ROI=新用户90日累计充值金额/实际消耗")
    private BigDecimal roiDay90;

    @ApiModelProperty(notes = "180日ROI=新用户180日累计充值金额/实际消耗")
    private BigDecimal roiDay180;

    @ApiModelProperty(notes = "一年ROI=新用户一年累计充值金额/实际消耗")
    private BigDecimal roiYear1;

    @ApiModelProperty(notes = "总ROI=新用户累计充值金额/实际消耗")
    private BigDecimal roiTotal;

    @ApiModelProperty(notes = "不展示--付费趋势：1天")
    private String trendDay1;

    @ApiModelProperty(notes = "不展示--付费趋势：2天")
    private String trendDay2;

    @ApiModelProperty(notes = "不展示--付费趋势：3天")
    private String trendDay3;

    @ApiModelProperty(notes = "不展示--付费趋势：4天")
    private String trendDay4;

    @ApiModelProperty(notes = "不展示--付费趋势：5天")
    private String trendDay5;

    @ApiModelProperty(notes = "不展示--付费趋势：6天")
    private String trendDay6;

    @ApiModelProperty(notes = "不展示--付费趋势：7天")
    private String trendDay7;

    @ApiModelProperty(notes = "不展示--付费趋势：8天")
    private String trendDay8;

    @ApiModelProperty(notes = "不展示--付费趋势：9天")
    private String trendDay9;

    @ApiModelProperty(notes = "不展示--付费趋势：10天")
    private String trendDay10;

    // Continue the pattern for trendDay11 to trendDay30
    @ApiModelProperty(notes = "不展示--付费趋势：11天")
    private String trendDay11;

    @ApiModelProperty(notes = "不展示--付费趋势：12天")
    private String trendDay12;

    @ApiModelProperty(notes = "不展示--付费趋势：13天")
    private String trendDay13;

    @ApiModelProperty(notes = "不展示--付费趋势：14天")
    private String trendDay14;

    @ApiModelProperty(notes = "不展示--付费趋势：15天")
    private String trendDay15;

    // Continue the pattern for trendDay16 to trendDay30
    @ApiModelProperty(notes = "不展示--付费趋势：16天")
    private String trendDay16;

    @ApiModelProperty(notes = "不展示--付费趋势：17天")
    private String trendDay17;

    @ApiModelProperty(notes = "不展示--付费趋势：18天")
    private String trendDay18;

    @ApiModelProperty(notes = "不展示--付费趋势：19天")
    private String trendDay19;

    @ApiModelProperty(notes = "不展示--付费趋势：20天")
    private String trendDay20;

    // Continue the pattern for trendDay21 to trendDay30
    @ApiModelProperty(notes = "不展示--付费趋势：21天")
    private String trendDay21;

    @ApiModelProperty(notes = "不展示--付费趋势：22天")
    private String trendDay22;

    @ApiModelProperty(notes = "不展示--付费趋势：23天")
    private String trendDay23;

    @ApiModelProperty(notes = "不展示--付费趋势：24天")
    private String trendDay24;

    @ApiModelProperty(notes = "不展示--付费趋势：25天")
    private String trendDay25;

    // Continue the pattern for trendDay26 to trendDay30
    @ApiModelProperty(notes = "不展示--付费趋势：26天")
    private String trendDay26;

    @ApiModelProperty(notes = "不展示--付费趋势：27天")
    private String trendDay27;

    @ApiModelProperty(notes = "不展示--付费趋势：28天")
    private String trendDay28;

    @ApiModelProperty(notes = "不展示--付费趋势：29天")
    private String trendDay29;

    @ApiModelProperty(notes = "不展示--付费趋势：1个月")
    private String trendMonth1;

    @ApiModelProperty(notes = "不展示--付费趋势：2个月")
    private String trendMonth2;

    @ApiModelProperty(notes = "不展示--付费趋势：3个月")
    private String trendMonth3;

    @ApiModelProperty(notes = "不展示--付费趋势：6个月")
    private String trendMonth6;

    @ApiModelProperty(notes = "不展示--付费趋势：1年")
    private String trendYear1;

    @ApiModelProperty(notes = "不展示--付费趋势：总")
    private String trendTotal;

    @ApiModelProperty(notes = "付费趋势：1天")
    private RechargeTrendVO rechargeTrendDay1;

    @ApiModelProperty(notes = "付费趋势：2天")
    private RechargeTrendVO rechargeTrendDay2;

    @ApiModelProperty(notes = "付费趋势：3天")
    private RechargeTrendVO rechargeTrendDay3;

    @ApiModelProperty(notes = "付费趋势：4天")
    private RechargeTrendVO rechargeTrendDay4;

    @ApiModelProperty(notes = "付费趋势：5天")
    private RechargeTrendVO rechargeTrendDay5;

    @ApiModelProperty(notes = "付费趋势：6天")
    private RechargeTrendVO rechargeTrendDay6;

    @ApiModelProperty(notes = "付费趋势：7天")
    private RechargeTrendVO rechargeTrendDay7;

    @ApiModelProperty(notes = "付费趋势：8天")
    private RechargeTrendVO rechargeTrendDay8;

    @ApiModelProperty(notes = "付费趋势：9天")
    private RechargeTrendVO rechargeTrendDay9;

    @ApiModelProperty(notes = "付费趋势：10天")
    private RechargeTrendVO rechargeTrendDay10;

    @ApiModelProperty(notes = "付费趋势：11天")
    private RechargeTrendVO rechargeTrendDay11;

    @ApiModelProperty(notes = "付费趋势：12天")
    private RechargeTrendVO rechargeTrendDay12;

    @ApiModelProperty(notes = "付费趋势：13天")
    private RechargeTrendVO rechargeTrendDay13;

    @ApiModelProperty(notes = "付费趋势：14天")
    private RechargeTrendVO rechargeTrendDay14;

    @ApiModelProperty(notes = "付费趋势：15天")
    private RechargeTrendVO rechargeTrendDay15;

    @ApiModelProperty(notes = "付费趋势：16天")
    private RechargeTrendVO rechargeTrendDay16;

    @ApiModelProperty(notes = "付费趋势：17天")
    private RechargeTrendVO rechargeTrendDay17;

    @ApiModelProperty(notes = "付费趋势：18天")
    private RechargeTrendVO rechargeTrendDay18;

    @ApiModelProperty(notes = "付费趋势：19天")
    private RechargeTrendVO rechargeTrendDay19;

    @ApiModelProperty(notes = "付费趋势：20天")
    private RechargeTrendVO rechargeTrendDay20;

    @ApiModelProperty(notes = "付费趋势：21天")
    private RechargeTrendVO rechargeTrendDay21;

    @ApiModelProperty(notes = "付费趋势：22天")
    private RechargeTrendVO rechargeTrendDay22;

    @ApiModelProperty(notes = "付费趋势：23天")
    private RechargeTrendVO rechargeTrendDay23;

    @ApiModelProperty(notes = "付费趋势：24天")
    private RechargeTrendVO rechargeTrendDay24;

    @ApiModelProperty(notes = "付费趋势：25天")
    private RechargeTrendVO rechargeTrendDay25;

    @ApiModelProperty(notes = "付费趋势：26天")
    private RechargeTrendVO rechargeTrendDay26;

    @ApiModelProperty(notes = "付费趋势：27天")
    private RechargeTrendVO rechargeTrendDay27;

    @ApiModelProperty(notes = "付费趋势：28天")
    private RechargeTrendVO rechargeTrendDay28;

    @ApiModelProperty(notes = "付费趋势：29天")
    private RechargeTrendVO rechargeTrendDay29;

    @ApiModelProperty(notes = "付费趋势：1个月")
    private RechargeTrendVO rechargeTrendMonth1;

    @ApiModelProperty(notes = "付费趋势：2个月")
    private RechargeTrendVO rechargeTrendMonth2;

    @ApiModelProperty(notes = "付费趋势：3个月")
    private RechargeTrendVO rechargeTrendMonth3;

    @ApiModelProperty(notes = "付费趋势：6个月")
    private RechargeTrendVO rechargeTrendMonth6;

    @ApiModelProperty(notes = "付费趋势：1年")
    private RechargeTrendVO rechargeTrendYear1;

    @ApiModelProperty(notes = "付费趋势：总")
    private RechargeTrendVO rechargeTrendTotal;

    @ApiModelProperty(notes = "首日付费率=首日新用户充值人数/注册人数")
    private BigDecimal firstRechargeRate;

    @ApiModelProperty(notes = "新用户付费率=新用户充值人数/注册人数")
    private BigDecimal userRechargeRate;

    @ApiModelProperty(notes = "当天付费率=新用户累计充值人数/注册人数")
    private BigDecimal todayRechargeRate;

    @ApiModelProperty(notes = "新用户付费比=新用户充值人数/账面充值人数")
    private BigDecimal newUserRechargeRatio;

    @ApiModelProperty(notes = "首日客单价=首日新用户充值金额/首日新用户充值次数")
    private BigDecimal avgFirstUserRecharge;

    @ApiModelProperty(notes = "新用户客单价=新用户充值金额/新用户充值次数")
    private BigDecimal avgUserRecharge;

    @ApiModelProperty(notes = "当天客单价=新用户累计充值金额/新用户累计充值次数")
    private BigDecimal avgTodayRecharge;

    @ApiModelProperty(notes = "账面客单价=账面充值金额/账面充值次数")
    private BigDecimal avgShowUserRecharge;

    @ApiModelProperty(notes = "首日充值成本=实际消耗/首日新用户充值人数")
    private BigDecimal firstRechargeCost;

    @ApiModelProperty(notes = "新用户充值成本=实际消耗/新用户充值人数")
    private BigDecimal userRechargeCost;

    @ApiModelProperty(notes = "当天充值成本=实际消耗/首日新用户充值人数")
    private BigDecimal todayRechargeCost;

    @ApiModelProperty(notes = "复充率=新用户复充人数/新用户充值人数")
    private BigDecimal repeatRechargeRate;

    @ApiModelProperty(notes = "新用户复充率=新用户复充人数/新用户累计充值人数")
    private BigDecimal userRepeatRechargeRate;

    @ApiModelProperty(notes = "当天复充率=复充人数/新用户累计充值人数")
    private BigDecimal todayRepeatRechargeRate;

    @ApiModelProperty(notes = "新增注册Arpu=新用户累计充值金额/注册人数")
    private BigDecimal newRegArpu;

    @ApiModelProperty(notes = "首日付费Arpu=首日新用户充值金额/首日新用户充值人数")
    private BigDecimal firstRechargeArpu;

    @ApiModelProperty(notes = "新用户付费Arpu=新用户充值金额/新用户充值人数")
    private BigDecimal userRechargeArpu;

    @ApiModelProperty(notes = "当天付费Arpu=新用户累计充值金额/新用户累计充值人数")
    private BigDecimal todayRechargeArpu;

    @ApiModelProperty(notes = "账面Arpu=账面充值金额/账面充值人数")
    private BigDecimal showRechargeArpu;

    @ApiModelProperty(notes = "单日付费100+人数")
    private String hundredUserNum;

    @ApiModelProperty(notes = "单日付费100+成本")
    private String hundredUserNumCost;

    @ApiModelProperty(notes = "新用户充值次数成本 = 消耗/新用户充值次数")
    private BigDecimal userRechargeCountCost;

    @ApiModelProperty(notes = "首日充值次数成本=实际消耗/首日新用户充值次数")
    private BigDecimal firstRechargeCountCost;

    @ApiModelProperty(notes = "老用户充值次数成本 = 消耗/老用户充值次数")
    private BigDecimal oldUserRechargeCountCost;

    @ApiModelProperty(notes = "账面充值次数成本=消耗/账面充值次数")
    private BigDecimal showRechargeCountCost;

    @ApiModelProperty(notes = "新用户累计充值次数成本 = 消耗/新用户累计充值次数")
    private BigDecimal newUserRechargeCountCost;

    /**
     * 首日创角人数
     */
    @ApiModelProperty(value = "首日创角人数")
    private Long firstRoleNum;

    /**
     * 新用户累计创角人数
     */
    @ApiModelProperty(value = "新用户累计创角人数")
    private Long newUserTotalRoleNum;

    /**
     * 创角人数
     */
    @ApiModelProperty(value = "创角人数")
    private Long roleNum;
}
