package jnpf.model.attendance.dto.scheduling;

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

import java.math.BigDecimal;

/**
 * 划线排班参数，与 {@code ftb_attendance_group_drawing_param} 列扁平一致（无组 ID、无审计列）。
 *
 * @author xiaofeng
 * @create 2026-05-13
 */
@Data
@Schema(description = "划线排班规则参数")
public class LineSchedulingRuleDto {

    @Schema(description = "行主键；无记录时可为 null")
    private String id;

    @Schema(description = "单日班段个数规则是否启用")
    private Boolean maxDailySegmentsEnabled;

    @Schema(description = "单日班段个数上限（个），语义 ≤")
    private Integer maxDailySegmentsValue;

    @Schema(description = "约束级别：0 尽量，1 必须")
    private Byte maxDailySegmentsPriority;

    @Schema(description = "单个班段最长是否启用")
    private Boolean maxSingleSegmentHoursEnabled;

    @Schema(description = "单段最长（小时），语义 ≤")
    private Integer maxSingleSegmentHoursValue;

    @Schema(description = "约束级别：0 尽量，1 必须")
    private Byte maxSingleSegmentHoursPriority;

    @Schema(description = "单个班段最短是否启用")
    private Boolean minSingleSegmentHoursEnabled;

    @Schema(description = "单段最短（小时），支持小数，语义 ≥")
    private BigDecimal minSingleSegmentHoursValue;

    @Schema(description = "约束级别：0 尽量，1 必须")
    private Byte minSingleSegmentHoursPriority;
}
