package jnpf.model.attendance.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

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

/**
 * 需求6：假勤汇总VO
 *
 * @author Generated
 * @create 2026-04-22
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "假勤汇总VO")
public class LeaveRemarkSummaryVo {

    /**
     * 实际出勤天数
     */
    @Schema(description = "实际出勤天数")
    private BigDecimal actualAttendDays;

    /**
     * 公休天数
     */
    @Schema(description = "公休天数")
    private BigDecimal publicHolidayDays;

    /**
     * 迟到天数
     */
    @Schema(description = "迟到天数")
    private BigDecimal lateDays;

    /**
     * 早退天数
     */
    @Schema(description = "早退天数")
    private BigDecimal earlyLeaveDays;

    /**
     * 缺卡天数
     */
    @Schema(description = "缺卡天数")
    private BigDecimal missingCardDays;

    /**
     * 旷工天数
     */
    @Schema(description = "旷工天数")
    private BigDecimal absenteeismDays;

    /**
     * 出差天数
     */
    @Schema(description = "出差天数")
    private BigDecimal businessTripDays;

    /**
     * 外出天数
     */
    @Schema(description = "外出天数")
    private BigDecimal outOfficeDays;

    /**
     * 外勤天数
     */
    @Schema(description = "外勤天数")
    private BigDecimal fieldWorkDays;

    @Schema(description = "实际出勤次数")
    private BigDecimal actualAttendCount;

    @Schema(description = "公休次数")
    private BigDecimal publicHolidayCount;

    @Schema(description = "迟到次数")
    private BigDecimal lateCount;

    @Schema(description = "早退次数")
    private BigDecimal earlyLeaveCount;

    @Schema(description = "缺卡次数")
    private BigDecimal missingCardCount;

    @Schema(description = "旷工次数")
    private BigDecimal absenteeismCount;

    @Schema(description = "出差次数")
    private BigDecimal businessTripCount;

    @Schema(description = "外出次数")
    private BigDecimal outOfficeCount;

    @Schema(description = "外勤次数")
    private BigDecimal fieldWorkCount;

    /**
     * 请假天数统计
     */
    @Schema(description = "请假天数统计")
    private List<LeaveTypeStatisticVo> leaveDaysByType;
    /**
     * 请假备注信息列表
     */
    @Schema(description = "请假备注信息列表")
    private List<LeaveRemarkItemVo> leaveRemarks;

    /**
     * 备注信息总数
     */
    @Schema(description = "备注信息总数")
    private Integer totalCount;
}
