package com.aidex.system.domain;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import com.aidex.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aidex.common.utils.log.annotation.FieldRemark;
import com.aidex.common.utils.log.annotation.LogField;
import com.aidex.common.annotation.Excel;

/**
 * 小程序日数据统计对象 sys_miniapp_daily_visit
 * @author ChenSir
 * @email 914769835
 * @date 2024-03-18
 */
@Data
public class SysMiniappDailyVisit extends BaseEntity<SysMiniappDailyVisit>
{
    private static final long serialVersionUID = 1L;

    /** 数据获取日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "数据获取日期", width = 30, dateFormat = "yyyy-MM-dd")
    @LogField
    @FieldRemark(name = "数据获取日期",field = "refDate")
    private Date refDate;

    /** 数据获取日期开始 */
    private String beginRefDate;

    /** 数据获取日期结束 */
    private String endRefDate;
	
    /** 小程序打开次数 */
    @Excel(name = "小程序打开次数")
    @LogField
    @FieldRemark(name = "小程序打开次数",field = "sessionCnt")
    private Long sessionCnt;

    /** 小程序访问次数 */
    @Excel(name = "小程序访问次数")
    @LogField
    @FieldRemark(name = "小程序访问次数",field = "visitPv")
    private Long visitPv;

    /** 小程序访问次数 */
    @Excel(name = "小程序访问次数")
    @LogField
    @FieldRemark(name = "小程序访问次数",field = "visitUv")
    private Long visitUv;

    /** 小程序新用户数量 */
    @Excel(name = "小程序新用户数量")
    @LogField
    @FieldRemark(name = "小程序新用户数量",field = "visitUvNew")
    private Long visitUvNew;

    /** 人均停留时间-秒 */
    @Excel(name = "人均停留时间-秒")
    @NotBlank(message = "人均停留时间-秒不允许为空")
    @LogField
    @FieldRemark(name = "人均停留时间-秒",field = "stayTimeUv")
    private String stayTimeUv;

    /** 次均停留时间-秒 */
    @Excel(name = "次均停留时间-秒")
    @NotBlank(message = "次均停留时间-秒不允许为空")
    @LogField
    @FieldRemark(name = "次均停留时间-秒",field = "stayTimeSession")
    private String stayTimeSession;

    /** 平均访问深度 */
    @NotBlank(message = "平均访问深度不允许为空")
    @LogField
    @FieldRemark(name = "平均访问深度",field = "visitDepth")
    private String visitDepth;

    public void setRefDate(Date refDate) 
    {
        this.refDate = refDate;
    }

    public Date getRefDate() 
    {
        return refDate;
    }

    public void setSessionCnt(Long sessionCnt) 
    {
        this.sessionCnt = sessionCnt;
    }

    public Long getSessionCnt() 
    {
        return sessionCnt;
    }

    public void setVisitPv(Long visitPv) 
    {
        this.visitPv = visitPv;
    }

    public Long getVisitPv() 
    {
        return visitPv;
    }

    public void setVisitUv(Long visitUv) 
    {
        this.visitUv = visitUv;
    }

    public Long getVisitUv() 
    {
        return visitUv;
    }

    public void setVisitUvNew(Long visitUvNew) 
    {
        this.visitUvNew = visitUvNew;
    }

    public Long getVisitUvNew() 
    {
        return visitUvNew;
    }

    public void setStayTimeUv(String stayTimeUv) 
    {
        this.stayTimeUv = stayTimeUv;
    }

    public String getStayTimeUv() 
    {
        return stayTimeUv;
    }

    public void setStayTimeSession(String stayTimeSession) 
    {
        this.stayTimeSession = stayTimeSession;
    }

    public String getStayTimeSession() 
    {
        return stayTimeSession;
    }

    public void setVisitDepth(String visitDepth) 
    {
        this.visitDepth = visitDepth;
    }

    public String getVisitDepth() 
    {
        return visitDepth;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("refDate", getRefDate())
            .append("sessionCnt", getSessionCnt())
            .append("visitPv", getVisitPv())
            .append("visitUv", getVisitUv())
            .append("visitUvNew", getVisitUvNew())
            .append("stayTimeUv", getStayTimeUv())
            .append("stayTimeSession", getStayTimeSession())
            .append("visitDepth", getVisitDepth())
            .append("remark", getRemark())
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createDept", getCreateDept())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("updateIp", getUpdateIp())
            .append("version", getVersion())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
