package jnpf.model.attendance.dto;

import jnpf.model.common.PageDto;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.util.List;

/**
 * describe
 *
 * @author HuangLinPan
 * @date 2023/11/23
 */

@Getter
@Setter
@ToString
public class BalanceQueryDto extends PageDto {

    /** 考勤组id */
    @NotEmpty(message = "考勤组id不能为空")
    private String groupId;

    /** 用户名称 */
    private String userName;

    /** 最小余额 */
    private Integer minBalance;

    /** 最大余额 */
    private Integer maxBalance;

    /** 最小临期余额 */
    private Integer minAdventBalance;

    /** 最大临期余额 */
    private Integer maxAdventBalance;

    /** 余额排序 0 不排序 1 倒序 2 正序 */
    private Integer balanceSort = 1;

    /** 带薪余额排序 0 不排序 1 倒序 2 正序 */
    private Integer paidBalanceSort = 1;

    /** 非带薪余额 0 不排序 1 倒序 2 正序 */
    private Integer unpaidBalanceSort = 1;

    /** 临期余额 0 不排序 1 倒序 2 正序 */
    private Integer adventBalance = 1;

    /** 节假日/用户名称 */
    private String iText;

    /** 最早发放时间 */
    private String minGrantTime;

    /** 最晚发放时间 */
    private String maxGrantTime;

    /** 最早过期时间 */
    private String minExpireTime;

    /** 最晚过期时间 */
    private String maxExpireTime;

    /**
     * 状态 0 正常 1 过期 2已停用
     */
    private Integer state;

    private List<String> userIds;

    private String userId;

    /** 开始日期 时间戳 */
    private String startDay;

    private String month;

    private String[] time;

    private String startTime;

    private String endTime;

    private String taskId;
    public String getStartTime() {
        if (null != time && time.length > 1) {
            return time[0];
        }
        return startTime;
    }

    public String getEndTime() {
        if (null != time && time.length > 1) {
            return time[1];
        }
        return endTime;
    }


    public BalanceQueryDto() {
    }

    public BalanceQueryDto(String userId, String startTime, String endTime) {
        this.userId = userId;
        this.startTime = startTime;
        this.endTime = endTime;
    }
}
