package com.greenorange.promotion.model.dto.userPerformanceSummary;

import com.greenorange.promotion.common.PageRequest;
import com.greenorange.promotion.constant.CommonConstant;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

/**
 * 小程序端绩效排名查询请求体，继承自分页请求 PageRequest
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Schema(description = "小程序端绩效排名查询请求体", requiredProperties = {"current", "pageSize"})
public class MiniUserPerformanceSummaryRankQueryRequest implements Serializable {

    /**
     * 姓名
     */
    @Schema(description = "姓名", example = "chenxinzhi")
    private String nickName;

    /**
     * 手机号
     */
    @Schema(description = "手机号", example = "15888610253")
    private String phoneNumber;

    /**
     * 起始日期
     */
    @Schema(description = "起始日期", example = "2025-02-29 10:00:00")
    private String startDate;

    /**
     * 结束日期
     */
    @Schema(description = "结束日期", example = "2025-02-29 10:00:00")
    private String endDate;

    /**
     * 排序字段
     */
    @Schema(description = "排序字段", example = "id")
    private String sortField;

    /**
     * 排序顺序（默认升序）
     */
    @Schema(description = "排序顺序((升:ascend;降:descend", example = "ascend")
    private String sortOrder = CommonConstant.SORT_ORDER_ASC;


    @Serial
    private static final long serialVersionUID = 1L;
}