package com.srs.dormitory.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;



/**
 * 打卡设置对象 dms_need_card_stu
 *
 * @author srs
 * @date 2025-07-08
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "DmsNeedCardStu对象" , description = "辅导员或系统设置的每天需要打卡的学生表")
@TableName("dms_need_card_stu")
public class DmsNeedCardStu{

    /**
     * #
     */
    @ApiModelProperty("#")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 需要打卡的日期
     */
    @ApiModelProperty("需要打卡的日期")
    @TableField("need_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "需要打卡的日期" , width = 30, dateFormat = "yyyy-MM-dd")
    private Date needDate;

    /**
     * 需要打卡的学号
     */
    @ApiModelProperty("需要打卡的学号")
    @TableField("stu_no")
    @Excel(name = "需要打卡的学号")
    private String stuNo;


    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 学生姓名
     */
    @ApiModelProperty("学生姓名")
    @TableField(exist = false)
    @Excel(name = "学生姓名")
    private String stuName;

    /**
     * 班级名称
     */
    @ApiModelProperty("班级名称")
    @TableField(exist = false)
    @Excel(name = "班级名称")
    private String className;

    /**
     * 院系名称
     */
    @ApiModelProperty("院系名称")
    @TableField(exist = false)
    @Excel(name = "院系名称")
    private String deptName;

    /**
     * 专业名称
     */
    @ApiModelProperty("专业名称")
    @TableField(exist = false)
    @Excel(name = "专业名称")
    private String majorName;

    /**
     * 年级名称
     */
    @ApiModelProperty("年级名称")
    @TableField(exist = false)
    @Excel(name = "年级名称")
    private String gradeName;

    /**
     * 校区名称
     */
    @ApiModelProperty("校区名称")
    @TableField(exist = false)
    @Excel(name = "校区名称")
    private String campusName;

    /**
     * 园区名称
     */
    @ApiModelProperty("园区名称")
    @TableField(exist = false)
    @Excel(name = "园区名称")
    private String parkName;

    /**
     * 楼号
     */
    @ApiModelProperty("楼号")
    @TableField(exist = false)
    @Excel(name = "楼号")
    private String buildingName;

    /**
     * 楼层
     */
    @ApiModelProperty("楼层")
    @TableField(exist = false)
    @Excel(name = "楼层")
    private String floor;

    /**
     * 房间号
     */
    @ApiModelProperty("房间号")
    @TableField(exist = false)
    @Excel(name = "房间号")
    private String roomNo;


    @ApiModelProperty("辅导员工号")
    @TableField(exist = false)
    private String fdyNo;

    @ApiModelProperty("辅导员姓名")
    @TableField(exist = false)
    private String teacherName;

    // 宿舍信息查询字段
    @ApiModelProperty("校区ID")
    @TableField(exist = false)
    private Long campusId;

    @ApiModelProperty("园区ID")
    @TableField(exist = false)
    private Long parkId;

    @ApiModelProperty("楼栋ID")
    @TableField(exist = false)
    private Long buildingId;

    @ApiModelProperty("楼层ID")
    @TableField(exist = false)
    private Long floorId;

    @ApiModelProperty("宿舍ID")
    @TableField(exist = false)
    private Long dormitoryId;

    // 学生信息查询字段
    @ApiModelProperty("学院ID")
    @TableField(exist = false)
    private Long deptId;

    @ApiModelProperty("专业ID")
    @TableField(exist = false)
    private Long majorId;

    @ApiModelProperty("班级ID")
    @TableField(exist = false)
    private Long classId;

    @ApiModelProperty("年级ID")
    @TableField(exist = false)
    private Long gradeId;

    @ApiModelProperty("身份证号")
    @TableField(exist = false)
    private String idCard;

    @TableField(exist = false)
    @ApiModelProperty("是否打卡")
    public String isCard;


}
