package cn.iocoder.yudao.module.system.controller.admin.workovertime.vo;

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

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

@Schema(description = "管理后台 - 加班规则子表(按日类型区分)新增/修改 Request VO")
@Data
public class WorkOvertimeRuleItemSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "6361")
    private Long id;

    @Schema(description = "加班规则id", example = "30012")
    private Long ruleId;

    @Schema(description = "类型 1工作日 2休息日 3节假日", example = "1")
    private Integer type;

    @Schema(description = "状态 0不允许加班 1允许加班", example = "2")
    private Integer status;

    @Schema(description = "可加班时间类型(只有类型为工作日有意义) 1允许班前和班后加班  2仅允许班前加班 3仅允许班后加班", example = "1")
    private Integer allowOvertimeTimeType;

    @Schema(description = "计算方式 1按审批时长计算 2在审批的时段内，按打卡时长计算 3无需审批，按打卡时长计算")
    private Integer calculationMode;

    @Schema(description = "加班起算时间 下班n分钟后开始算加班")
    private Integer overtimeStartingTime;

    @Schema(description = "班前加班少于多少分钟，不计入加班")
    private Integer beforeWorkOvertime;

    @Schema(description = "班后加班少于多少分钟，不计入加班")
    private Integer afterWorkOvertime;

    @Schema(description = "累计加班少于多少分钟，不计入加班")
    private Integer overtimeTotalHours;

    @Schema(description = "是否扣除休息时间 0否 1是")
    private Integer isDeductBreakTime;

    @Schema(description = "加班时长计为调休或加班费 0否 1是")
    private Integer isTransformation;

    @Schema(description = "转换类型 1计为调休 2计为加班费", example = "1")
    private Integer transformationType;

    @Schema(description = "调休转换比例")
    private BigDecimal compensatoryLeaveRatio;

    @Schema(description = "假期id", example = "24104")
    private Long holidayId;

    @Schema(description = "扣除规则列表")
    private List<WorkOvertimeDeductRuleSaveReqVO> deductRules;

}
