package jnpf.model.attendance.vo.attendance;

import jnpf.model.attendance.model.LeaveTypeJsonData;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MonthConfirmStatisticsListVo {
    /**
     * 用户ID
     */
    private String userId;
    /**
     * 考勤月份
     */
    private String month;
    /**
     * 考勤周期
     */
    private List<String> cycleList = new ArrayList<>();
    /**
     * 已休|应休
     */
    private String retired = "0|0";
    /**
     * 应出勤天数
     */
    private BigDecimal shouldAttendDays = BigDecimal.ZERO;
    /**
     * 应出勤小时数
     */
    private BigDecimal shouldAttendHours = BigDecimal.ZERO;
    /**
     * 有效出勤天数
     */
    private BigDecimal effectiveAttendDays = BigDecimal.ZERO;
    /**
     * 有效出勤小时数
     */
    private BigDecimal effectiveAttendHours = BigDecimal.ZERO;
    /**
     * 实际出勤天数
     */
    private BigDecimal actualAttendDays = BigDecimal.ZERO;
    /**
     * 实际出勤小时数
     */
    private BigDecimal actualAttendHours = BigDecimal.ZERO;
    /**
     * 迟到次数
     */
    private Integer lateTimes = 0;
    /**
     * 迟到分钟数
     */
    private BigDecimal lateMinutes = BigDecimal.ZERO;
    /**
     * 补卡次数
     */
    private Integer makeUpCardTimes = 0;
    /**
     * 外勤次数
     */
    private Integer outworkTimes = 0;
    /**
     * 早退次数
     */
    private Integer earlyLeaveTimes = 0;
    /**
     * 早退分钟数
     */
    private BigDecimal earlyLeaveMinutes = BigDecimal.ZERO;
    /**
     * 缺卡次数
     */
    private Integer absenceCardTimes = 0;
    /**
     * 缺卡天数
     */
    private BigDecimal absenceCardDays = BigDecimal.ZERO;
    /**
     * 旷工次数
     */
    private Integer absenceTimes = 0;
    /**
     * 旷工天数
     */
    private BigDecimal absenceDays = BigDecimal.ZERO;
    /**
     * 出差天数
     */
    private BigDecimal busDays = BigDecimal.ZERO;
    /**
     * 外出天数
     */
    private BigDecimal outDays = BigDecimal.ZERO;
    /**
     * 节假日加班小时数
     */
    private BigDecimal holidaysOvertimeHours = BigDecimal.ZERO;
    /**
     * 公休日加班小时数
     */
    private BigDecimal publicHolidaysOvertimeHours = BigDecimal.ZERO;
    /**
     * 工作日加班小时数
     */
    private BigDecimal weekdayOvertimeHours = BigDecimal.ZERO;
    /**
     * 请假天数
     */
    private BigDecimal leaveDays = BigDecimal.ZERO;
    /**
     * 调休天数
     */
    private BigDecimal compensationDays = BigDecimal.ZERO;
    /**
     * 自定义假期动态Json
     */
    private List<LeaveTypeJsonData> customLeaveList;
}
