package jnpf.entity.attendance;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 考勤本配置表
 * 
 * 设计说明：
 * 1. 考勤本配置独立管理，包含名称、使用范围、负责人等信息
 * 2. 考勤记录表通过F_BookId关联到本配置表
 * 3. 负责人和可排假期都支持多选，用逗号拼接存储
 * 
 * @author Generated
 * @create 2026-04-15
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("ftb_attendance_book_config")
public class AttendanceBookConfigEntity implements Serializable {
    
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId("F_Id")
    private String id;

    /**
     * 考勤本名称
     */
    @TableField("F_BookName")
    private String bookName;

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

    /**
     * 考勤本负责人ID列表（多个用逗号拼接）
     */
    @TableField("F_ManagerIds")
    private String managerIds;

    /**
     * 可排假期范围类型（1:全部假期 2:指定假期）
     */
    @TableField("F_HolidayScopeType")
    private Integer holidayScopeType;

    /**
     * 可排假期ID列表（多个用逗号拼接）
     */
    @TableField("F_HolidayIds")
    private String holidayIds;

    /**
     * 启用状态（1:启用 0:禁用）
     */
    @TableField("F_EnabledMark")
    private Integer enabledMark;

    /**
     * 创建人ID
     */
    @TableField("F_CreatorUserId")
    private String creatorUserId;

    /**
     * 创建时间
     */
    @TableField("F_CreatorTime")
    private Date creatorTime;

    /**
     * 最后修改人ID
     */
    @TableField("F_LastModifyUserId")
    private String lastModifyUserId;

    /**
     * 最后修改时间
     */
    @TableField("F_LastModifyTime")
    private Date lastModifyTime;

    /**
     * 删除标识（0:未删除 1:已删除）
     */
    @TableField("F_DeleteMark")
    private Integer deleteMark;

    /**
     * 删除时间
     */
    @TableField("F_DeleteTime")
    private Date deleteTime;

    /**
     * 删除人ID
     */
    @TableField("F_DeleteUserId")
    private String deleteUserId;

    /**
     * 租户ID
     */
    @TableField("F_TenantId")
    private String tenantId;
}
