package cn.com.ctop.kuaishou.modules.report.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 账户维度-每小时盯盘数据
 *
 * @author jeecg-boot
 * @version V1.0
 * @date 2021-03-04
 */
@Data
@TableName("ctop_etl_kuaishou_report_account_hourly")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ctop_etl_kuaishou_report_account_hourly对象", description = "账户维度-每小时盯盘数据")
public class EtlKuaishouReportAccountHourly {

    /**
     * id
     */
    @TableId(type = IdType.INPUT)
    @ApiModelProperty(value = "id")
    private Long id;
    /**
     * 日期
     */
    @Excel(name = "日期", width = 15)
    @ApiModelProperty(value = "日期")
    private String statDate;
    /**
     * 时间
     */
    @Excel(name = "时间", width = 15)
    @ApiModelProperty(value = "时间")
    private Long statHour;
    /**
     * 账户ID
     */
    @Excel(name = "账户ID", width = 15)
    @ApiModelProperty(value = "账户ID")
    private Long accountId;
    /**
     * 花费(元)
     */
    @Excel(name = "花费(元)", width = 15)
    @ApiModelProperty(value = "花费(元)")
    private BigDecimal charge;
    /**
     * 封面曝光数
     */
    @Excel(name = "封面曝光数", width = 15)
    @ApiModelProperty(value = "封面曝光数")
    private Long photoShow;
    /**
     * 封面点击数
     */
    @Excel(name = "封面点击数", width = 15)
    @ApiModelProperty(value = "封面点击数")
    private Long photoClick;
    /**
     * 素材曝光数
     */
    @Excel(name = "素材曝光数", width = 15)
    @ApiModelProperty(value = "素材曝光数")
    private Long aclick;
    /**
     * 行为数
     */
    @Excel(name = "行为数", width = 15)
    @ApiModelProperty(value = "行为数")
    private Long bclick;
    /**
     * 分享数
     */
    @Excel(name = "分享数", width = 15)
    @ApiModelProperty(value = "分享数")
    private Long photoShare;
    /**
     * 评论数
     */
    @Excel(name = "评论数", width = 15)
    @ApiModelProperty(value = "评论数")
    private Long photoComment;
    /**
     * 点赞数
     */
    @Excel(name = "点赞数", width = 15)
    @ApiModelProperty(value = "点赞数")
    private Long photoLike;
    /**
     * 新增关注数
     */
    @Excel(name = "新增关注数", width = 15)
    @ApiModelProperty(value = "新增关注数")
    private Long follow;
    /**
     * 取消关注数
     */
    @Excel(name = "取消关注数", width = 15)
    @ApiModelProperty(value = "取消关注数")
    private Long cancelFollow;
    /**
     * 举报数
     */
    @Excel(name = "举报数", width = 15)
    @ApiModelProperty(value = "举报数")
    private Long report;
    /**
     * 拉黑数
     */
    @Excel(name = "拉黑数", width = 15)
    @ApiModelProperty(value = "拉黑数")
    private Long block;
    /**
     * 减少此类作品数
     */
    @Excel(name = "减少此类作品数", width = 15)
    @ApiModelProperty(value = "减少此类作品数")
    private Long negative;
    /**
     * 应用下载数据-安卓下载开始数
     */
    @Excel(name = "应用下载数据-安卓下载开始数", width = 15)
    @ApiModelProperty(value = "应用下载数据-安卓下载开始数")
    private Long downloadStarted;
    /**
     * 应用下载数据-安卓下载完成数
     */
    @Excel(name = "应用下载数据-安卓下载完成数", width = 15)
    @ApiModelProperty(value = "应用下载数据-安卓下载完成数")
    private Long downloadCompleted;
    /**
     * 应用下载数据-激活数
     */
    @Excel(name = "应用下载数据-激活数", width = 15)
    @ApiModelProperty(value = "应用下载数据-激活数")
    private Long activation;
    /**
     * 提交按钮点击数
     */
    @Excel(name = "提交按钮点击数", width = 15)
    @ApiModelProperty(value = "提交按钮点击数")
    private Long submit;
    /**
     * 应用下载数据-首日付费次数
     */
    @Excel(name = "应用下载数据-首日付费次数", width = 15)
    @ApiModelProperty(value = "应用下载数据-首日付费次数")
    private Long eventPayFirstDay;
    /**
     * 应用下载数据-首日付费金额
     */
    @Excel(name = "应用下载数据-首日付费金额", width = 15)
    @ApiModelProperty(value = "应用下载数据-首日付费金额")
    private BigDecimal eventPayPurchaseAmountFirstDay;
    /**
     * 应用下载数据-付费次数
     */
    @Excel(name = "应用下载数据-付费次数", width = 15)
    @ApiModelProperty(value = "应用下载数据-付费次数")
    private Long eventPay;
    /**
     * 应用下载数据-付费金额
     */
    @Excel(name = "应用下载数据-付费金额", width = 15)
    @ApiModelProperty(value = "应用下载数据-付费金额")
    private BigDecimal eventPayPurchaseAmount;
    /**
     * 应用下载数据-注册数
     */
    @Excel(name = "应用下载数据-注册数", width = 15)
    @ApiModelProperty(value = "应用下载数据-注册数")
    private Long eventRegister;
    /**
     * 应用下载数据-完件数
     */
    @Excel(name = "应用下载数据-完件数", width = 15)
    @ApiModelProperty(value = "应用下载数据-完件数")
    private Long eventJinJianApp;
    /**
     * 应用下载数据-授信数
     */
    @Excel(name = "应用下载数据-授信数", width = 15)
    @ApiModelProperty(value = "应用下载数据-授信数")
    private Long eventCreditGrantApp;
    /**
     * 应用下载数据-付款成功数
     */
    @Excel(name = "应用下载数据-付款成功数", width = 15)
    @ApiModelProperty(value = "应用下载数据-付款成功数")
    private Long eventOrderPaid;
    /**
     * 应用下载数据-付款成功金额
     */
    @Excel(name = "应用下载数据-付款成功金额", width = 15)
    @ApiModelProperty(value = "应用下载数据-付款成功金额")
    private BigDecimal eventOrderPaidPurchaseAmount;
    /**
     * 落地页数据-落地页完件数
     */
    @Excel(name = "落地页数据-落地页完件数", width = 15)
    @ApiModelProperty(value = "落地页数据-落地页完件数")
    private Long eventJinJianLandingPage;
    /**
     * 落地页数据-落地页授信数
     */
    @Excel(name = "落地页数据-落地页授信数", width = 15)
    @ApiModelProperty(value = "落地页数据-落地页授信数")
    private Long eventCreditGrantLandingPage;
    /**
     * Save pv the next day
     * 应用下载数据-次留数（仅支持分日查询）
     */
    @Excel(name = "应用下载数据-次留数（仅支持分日查询）", width = 15)
    @ApiModelProperty(value = "应用下载数据-次留数（仅支持分日查询）")
    private Long eventNextDayStay;
    /**
     * 落地页数据-表单提交数
     */
    @Excel(name = "落地页数据-表单提交数", width = 15)
    @ApiModelProperty(value = "落地页数据-表单提交数")
    private Long formCount;
    /**
     * 3s播放数
     */
    @Excel(name = "3s播放数", width = 15)
    @ApiModelProperty(value = "3s播放数")
    private long play3sCount;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 修改时间
     */
    @Excel(name = "修改时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @TableField(exist = false)
    private BigDecimal totalBalance;//余额
    @TableField(exist = false)
    private BigDecimal budget;//预算
    @TableField(exist = false)
    private String authName;//账户名称
    @TableField(exist = false)
    private BigDecimal activationCost;//激活单价
    @TableField(exist = false)
    private BigDecimal impression1kCost;//平均千次素材曝光花费 = 花费/素材曝光数*1000
    @TableField(exist = false)
    private BigDecimal photoClickCost;//平均封面点击单价 = 花费／封面点击数
    @TableField(exist = false)
    private BigDecimal actionCost;//平均行为单价 = 总花费/行为数
    @TableField(exist = false)
    private BigDecimal play3sRatio;//3S播放率 = 广告视频播放3s数量/封面曝光数
    @TableField(exist = false)
    private BigDecimal downloadStartedCost;//安卓下载开始单价（元） =花费/安卓下载开始数
    @TableField(exist = false)
    private BigDecimal downloadCompletedCost;//安卓下载完成单价（元） =花费/安卓下载完成数
    @TableField(exist = false)
    private BigDecimal formCost;//表单提交单价 =当日消耗/当日回传表单数
    @TableField(exist = false)
    private BigDecimal eventPayFirstDayCost;//首日付费次数成本 =消耗/首日付费次数
    @TableField(exist = false)
    private BigDecimal eventPayCost;//付费次数成本 =消耗/付费次数
    @TableField(exist = false)
    private BigDecimal eventRegisterCost;//注册成本 =当日消耗/当日回传注册数
    @TableField(exist = false)
    private BigDecimal eventNextDayStayCost;//次日留存成本 =消耗/次日留存PV
    @TableField(exist = false)
    private BigDecimal eventJinJianAppCost;//完件成本 =消耗/完件数
    @TableField(exist = false)
    private BigDecimal eventCreditGrantAppCost;//授信成本 =消耗/授信数
    @TableField(exist = false)
    private BigDecimal eventJinJianLandingPageCost;//落地页完件成本 =当日消耗/当日回传完件数
    @TableField(exist = false)
    private BigDecimal eventCreditGrantLandingPageCost;//落地页授信成本 =当日消耗/当日回传授信数
    @TableField(exist = false)
    private BigDecimal submitCost;//按钮点击成本 =当日消耗 / 当日按钮点击数
    @TableField(exist = false)
    private BigDecimal eventPayFirstDayRoi;//首日ROI =首日付费金额/当日消耗
    @TableField(exist = false)
    private BigDecimal eventPayRoi;//ROI =付费金额/当日消耗
    @TableField(exist = false)
    private BigDecimal actionRatio;//行为率 =行为数占素材曝光数百分比
    @TableField(exist = false)
    private BigDecimal photoClickRatio;//封面点击率 =封面点击数占封面曝光数百分比
    @TableField(exist = false)
    private BigDecimal downloadStartedRatio;//安卓下载开始率 =安卓下载开始数/行为数
    @TableField(exist = false)
    private BigDecimal downloadCompletedRatio;//安卓下载完成率 =安卓下载完成数/安卓下载开始数
    @TableField(exist = false)
    private BigDecimal activationRatio;//下载完成激活率 =激活数/安卓下载完成数
    @TableField(exist = false)
    private BigDecimal clickOnActivationRatio;//下载完成激活率 =激活数/安卓下载完成数
    @TableField(exist = false)
    private BigDecimal eventRegisterRatio;//注册率 =当日回传注册数/当日激活数
    @TableField(exist = false)
    private BigDecimal eventNextDayStayRatio;//次日留存率 =次留数/前一日激活数
    @TableField(exist = false)
    private BigDecimal eventCreditGrantAppRatio;//授信率 =当日回传授信数/当日回传的完件数
    @TableField(exist = false)
    private BigDecimal formActionRatio;//表单提交点击率 =当日回传表单数/当日行为数
    @TableField(exist = false)
    private BigDecimal submitRatio;//按钮点击率 =当日按钮点击数 / 当日行为数
    private BigDecimal grew = new BigDecimal(0);//同比 = （今日实时花费-昨日截止到此时的花费）/昨日截止到此时的花费*100%；
}
