package jnpf.model.attendance.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 考勤本配置VO
 *
 * @author Generated
 * @create 2026-04-15
 */
@Data
public class AttendanceBookConfigVo {

    /**
     * 考勤本ID
     */
    private String id;

    /**
     * 考勤本名称
     */
    private String bookName;

    /**
     * 使用范围类型（0:全部 1:指定组织/成员）
     */
    private Integer scopeType;

    /**
     * 使用范围展示文本（前端展示用）
     * 例如：【使用的组织】:前厅,后厨  或  【使用的人员】:张三,李四
     */
    private String scopeDisplayText;

    /**
     * 使用范围-组织ID列表（scopeType=1时有效）
     */
    private List<String> organizeList = new ArrayList<>();

    /**
     * 使用范围-用户ID列表（scopeType=1时有效）
     */
    private List<String> userIdList = new ArrayList<>();

    /**
     * 考勤本负责人集合（包含负责人ID及名称）
     */
    private List<AttendanceGroupChargeVo> managerList = new ArrayList<>();

    /**
     * 可排假期范围类型（1:全部假期 2:指定假期）
     */
    private Integer holidayScopeType;

    /**
     * 可排假期ID列表（多个用逗号拼接）
     */
    private String holidayIds;

    /**
     * 可排假期展示文本（前端展示用）
     * 例如：公休,调休,年假,病假,婚假
     */
    private String holidayDisplayText;

    /**
     * 可排假期类型集合（包含假期类型ID及名称）
     */
    private List<HolidayTypeVo> holidayTypes = new ArrayList<>();

    /**
     * 启用状态（1:启用 0:禁用）
     */
    private Integer enabledMark;

    /**
     * 创建人ID
     */
    private String creatorUserId;

    /**
     * 创建人姓名（前端展示用）
     */
    private String creatorUserName;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date creatorTime;

    /**
     * 最后修改人ID
     */
    private String lastModifyUserId;

    /**
     * 最后修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastModifyTime;
}
