package jnpf.model.attendance.vo.scheduling;

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

import javax.validation.Valid;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 预排班主表一行（一日一行），含行内岗位 / 工作站预览。
 *
 * @author xiaofeng
 * @create 2026-05-13
 */
@Data
@Schema(description = "预排班主表行")
public class PreScheduleTableRowVo {

    @Schema(description = "排班日 yyyy-MM-dd", example = "2026-04-08")
    private String date;

    @Schema(description = "星期文案", example = "星期三")
    private String week;

    @Schema(description = "预估营业额（元），可编辑；预排班生成时由请求 dailyRevenues 同日项写入，与界面列一致")
    private BigDecimal revenue;

    @Schema(description = "当日人效目标（元/人），可编辑")
    private BigDecimal effTarget;

    @Schema(description = "排班人数（只读）", example = "16")
    private Integer headcount;

    @Schema(description = "预计人效（元/人），只读；排班人数为 0 时为 0")
    private BigDecimal effEst;

    @Schema(description = "人效差（元/人），只读；effTarget - effEst")
    private BigDecimal effDiff;

    @Valid
    @Schema(description = "当日岗位—人员预览（各岗位含人数）")
    private List<PreSchedulePostVo> posts;

    @Valid
    @Schema(description = "当日工作站—人员预览")
    private List<PreScheduleStationVo> stations;
}
