package com.sundot.airport.common.statistics;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * 时间维度参数
 * 用于封装年、季度、月等时间维度参数
 */
@Data
public class TimeDimensionParams {

    /**
     * 年份
     */
    @ApiModelProperty(value = "年份")
    private Integer year;

    /**
     * 季度
     */
    @ApiModelProperty(value = "季度")
    private Integer quarter;

    /**
     * 月份
     */
    @ApiModelProperty(value = "月份")
    private Integer month;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 是否环比
     */
    @ApiModelProperty(value = "是否环比")
    private Boolean chainRatio = false;

    /**
     * 是否同比
     */
    @ApiModelProperty(value = "是否同比")
    private Boolean yearOnYear = false;

    /**
     * 对比周期数（用于环比，如前1个月、前3个月等）
     */
    @ApiModelProperty(value = "对比周期数")
    private Integer comparePeriods = 1;

    /**
     * 大队 ID
     */
    @ApiModelProperty(value = "大队 ID")
    private Long brigadeId;

    /**
     * 科室 ID
     */
    @ApiModelProperty(value = "科室 ID")
    private Long departmentId;

    /**
     * 班 ID
     */
    @ApiModelProperty(value = "班 ID")
    private Long teamId;

    /**
     * 人员 ID
     */
    @ApiModelProperty(value = "人员 ID")
    private Long userId;

}