package shop.alien.entity.store.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 报表中心数据
 */
@Data
@JsonInclude
@ApiModel(value = "CommonPushReportVo", description = "报表中心数据")
public class CommonPushReportVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("报表类型：1-日报 2-周报 3-月报")
    private Integer reportType;

    @ApiModelProperty("报表日期（按当前日期及报表类型自动计算）")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date reportDate;

    @ApiModelProperty("报表标题，如：推送日报 — 2026-06-02 (周一)")
    private String reportTitle;

    @ApiModelProperty("统计开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startTime;

    @ApiModelProperty("统计结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endTime;

    @ApiModelProperty("核心指标概览")
    private CommonPushStatisticsSummaryVo summary;

    @ApiModelProperty("Top5推送（按点击率排序）")
    private List<CommonPushReportTopItemVo> topList;
}
