package com.czg.order.param;

import com.czg.validator.group.DefaultGroup;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * 销售统计Count入参
 * @author tankaikai
 * @since 2025-03-07 16:23
 */
@Data
@Accessors(chain = true)
public class SaleSummaryCountParam implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 商品名称
     */
    private String productName;

    /**
     * 分类 Id
     */
    private Long categoryId;

    /**
     * 开始时间 格式：yyyy-MM-dd
     */
    @NotBlank(message = "开始日期不能为空", groups = DefaultGroup.class)
    private LocalDate beginDate;
    /**
     * 结束时间 格式：yyyy-MM-dd
     */
    @NotBlank(message = "结束日期不能为空", groups = DefaultGroup.class)
    private LocalDate endDate;
    /**
     *  时间范围类型
     *  TODAY,       今天
     *  YESTERDAY,   昨天
     *  LAST_7_DAYS, 最近7天
     *  LAST_30_DAYS,最近30天
     *  THIS_WEEK,   本周
     *  THIS_MONTH   本月
     *  CUSTOM       自定义时间范围
     */
    private String rangeType;
    /**
     * 店铺id
     */
    private Long shopId;

    /**
     * 操作人
     */
    private String operator;
}
