package jnpf.model.attendance.dto.scheduling;

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

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 考勤组智能排班「排班规则配置」保存请求体：固定排班 + 划线排班。
 * 与 {@link jnpf.model.attendance.vo.scheduling.ScheduleGroupRuleConfigVo} 根字段对应；
 * 嵌套子块为请求 DTO（响应侧为 {@link jnpf.model.attendance.vo.scheduling.FixedSchedulingRuleVo} /
 * {@link jnpf.model.attendance.vo.scheduling.LineSchedulingRuleVo}）。
 *
 * @author xiaofeng
 * @create 2026-05-13
 */
@Data
@Schema(description = "排班规则配置（固定排班 + 划线排班）")
public class ScheduleGroupRuleConfigDto {

    @NotBlank
    @Schema(description = "考勤组 ID")
    private String groupId;

    @NotNull
    @Valid
    @Schema(description = "固定排班核心参数")
    private FixedSchedulingRuleDto fixedScheduling;

    @NotNull
    @Valid
    @Schema(description = "划线排班参数")
    private LineSchedulingRuleDto lineScheduling;
}
