package com.reyun.saas.report.vo;

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

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@ApiModel(value="ReportParamsVO",description="报表通用参数接收类")
public class ReportParamsVO {

    /**
     * 前端传值
     */
        @ApiModelProperty(value="报表名称")
        private String reportName;

        @ApiModelProperty(value="开始时间")
        private String startDate;

        @ApiModelProperty(value="结束时间")
        private String endDate;

        @ApiModelProperty(value="特殊参数格式接收appkey和cid")
        private List<AppkeyAndCids> appkeyAndCidsList;

        @ApiModelProperty(value="应用appkey（逗号隔开）")//AOP处理单引号
        private String appkeys;

        @ApiModelProperty(value="应用系统：Android=2或iOS=1（必传）")
        private String os;

        @ApiModelProperty(value="渠道（逗号隔开）")
        private String cids;

        @ApiModelProperty(value="SDK版本（逗号隔开）")
        private String sdkVersions;

        @ApiModelProperty(value="App版本（逗号隔开）")
        private String appVersions;

        @ApiModelProperty(value="操作系统（逗号隔开）")
        private String sysVersions;

        @ApiModelProperty(value="设备型号（逗号隔开）")
        private String models;

        @ApiModelProperty(value="设备品牌（逗号隔开）")
        private String brands;

        @ApiModelProperty(value="指标（逗号隔开）")
        private String viewcolumns;
    /**
     * 以下字段均由AOP切面计算得出（com.reyun.saas.web.aop.ReportDateProcessAspect）
     * com.reyun.saas.web.aop.ReportDateProcessAspect#sayAround(org.aspectj.lang.ProceedingJoinPoint)
     */

        @ApiModelProperty(value="实时开始时间",hidden = true)
        private String startDateStream;

        @ApiModelProperty(value="实时结束时间",hidden = true)
        private String endDateStream;


        @ApiModelProperty(value="离线开始时间",hidden = true)
        private String startDateOffLine;

        @ApiModelProperty(value="离线结束时间",hidden = true)
        private String endDateOffLine;


        @ApiModelProperty(value="开始日期与结束日期相差N天,同一天为0",hidden = true)
        private Integer betweenDay;

        @ApiModelProperty(value="日期区间类型:1-实时，2-离线，3-实时&离线",hidden = true)
        private String dateType;

    /**
     * 分页排序所需参数,按需传递
     */
        @ApiModelProperty(value="第N页（从1开始）,按需传递")
        private Integer pageNum;
        @ApiModelProperty(value="每页N条,按需传递")
        private Integer pageSize;
        @ApiModelProperty(value="字段排序：orderByColumn desc/asc,按需传递")
        private String orderBy;



}
