package com.srs.survey.domain;

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




/**
 * 学生假期返校对象 sur_itinerary
 *
 * @author srs
 * @date 2025-03-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "SurItinerary对象" , description = "学生假期返校表")
@TableName("sur_itinerary")
public class SurItinerary extends BaseEntity{
private static final long serialVersionUID=1L;


    @TableField(exist = false)
    public String surveyName;

    @TableField(exist = false)
    public String teacherName;

    @TableField(exist = false)
    public String tNo;

    @TableField(exist = false)
    public String campusName;


    @TableField(exist = false)
    public String parkName;

    @TableField(exist = false)
    public String buildingName;

    @TableField(exist = false)
    public String roomNo;


    /**
     * 学生返校id
     */
    @ApiModelProperty("学生返校id")
    @TableId( value="return_school_id", type = IdType.AUTO )
    public Long returnSchoolId;

    /**
     * 学院id
     */
    @ApiModelProperty("学院id")
    @TableField("dept_id")
    @Excel(name = "学院id")
    public Long deptId;

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

    /**
     * 学号
     */
    @ApiModelProperty("学号")
    @TableField("stu_no")
    @Excel(name = "学号")
    public String stuNo;

    /**
     * 所属班级id
     */
    @ApiModelProperty("所属班级")
    @TableField("class_id")
    @Excel(name = "所属班级")
    public Long classId;

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

    /**
     * 姓名
     */
    @ApiModelProperty("姓名")
    @TableField("name")
    @Excel(name = "姓名")
    public String name;

    /**
     * 联系电话
     */
    @ApiModelProperty("联系电话")
    @TableField("phone")
    @Excel(name = "联系电话")
    @Sensitive(desensitizedType = DesensitizedType.PHONE)
    public String phone;

    /**
     * 紧急联系人
     */
    @ApiModelProperty("紧急联系人")
    @TableField("emergency_contact")
    @Excel(name = "紧急联系人")
    public String emergencyContact;

    /**
     * 紧急联系人电话
     */
    @ApiModelProperty("紧急联系人电话")
    @TableField("emergency_contact_phone")
    @Excel(name = "紧急联系人电话")
    @Sensitive(desensitizedType = DesensitizedType.PHONE)
    public String emergencyContactPhone;

    /**
     * 所在校区
     */
    @ApiModelProperty("所在校区")
    @TableField("school_district")
    @Excel(name = "所在校区")
    public String schoolDistrict;

    /**
     * 公寓楼
     */
    @ApiModelProperty("公寓楼")
    @TableField("apartment")
    @Excel(name = "公寓楼")
    public String apartment;

    /**
     * 宿舍号
     */
    @ApiModelProperty("宿舍号")
    @TableField("room")
    @Excel(name = "宿舍号")
    public String room;

    /**
     * 计划返校时间
     */
    @ApiModelProperty("计划返校时间")
    @TableField("scheduled_return_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划返校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    public Date scheduledReturnTime;

    /**
     * 是否到校
     */
    @ApiModelProperty("是否到校")
    @TableField("reach_school_status")
    @Excel(name = "是否到校")
    public String reachSchoolStatus;

    /**
     * 家长姓名
     */
    @ApiModelProperty("家长姓名")
    @TableField("parent_name")
    @Excel(name = "家长姓名")
    public String parentName;

    /**
     * 家长电话
     */
    @ApiModelProperty("家长电话")
    @TableField("parent_phone")
    @Excel(name = "家长电话")
    @Sensitive(desensitizedType = DesensitizedType.PHONE)
    public String parentPhone;

    /**
     * 家长是否知晓
     */
    @ApiModelProperty("家长是否知晓")
    @TableField("know")
    @Excel(name = "家长是否知晓")
    public String know;

    /**
     * 未返校原因分类
     */
    @ApiModelProperty("未返校原因分类")
    @TableField("absent_school_type")
    @Excel(name = "未返校原因分类")
    public String absentSchoolType;

    /**
     * 未返校详细原因
     */
    @ApiModelProperty("未返校详细原因")
    @TableField("absent_school_remark")
    @Excel(name = "未返校详细原因")
    public String absentSchoolRemark;

    /**
     * 到校定位
     */
    @ApiModelProperty("到校定位")
    @TableField("attend_school_gps")
    @Excel(name = "到校定位")
    public String attendSchoolGps;

    /**
     * 到校时间
     */
    @ApiModelProperty("到校时间")
    @TableField("attend_school_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    public Date attendSchoolTime;

    /**
     * 状态：0.保存，1.保存,2.已审核
     */
    @ApiModelProperty("状态：0.保存，1.待审核,2.已审核")
    @TableField("status")
    @Excel(name = "状态：0.保存，1.待审核,2.已审核")
    public String status;

    /**
     * 所属主题
     */
    @ApiModelProperty("所属主题")
    @TableField("survey_id")
    @Excel(name = "所属主题")
    public Long surveyId;


    @ApiModelProperty("预计离校时间")
    @TableField("will_leave_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预计离校时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    public Date willLeaveTime;

    @ApiModelProperty("是否离校")
    @TableField("is_leave")
    @Excel(name = "是否离校")
    public String isLeave;

    @ApiModelProperty("家长姓名1")
    @TableField("fam_name")
    @Excel(name = "家长姓名1")
    public String famName;

    @ApiModelProperty("家长电话1")
    @TableField("fam_phone")
    @Excel(name = "家长电话1")
    public String famPhone;

    @ApiModelProperty("家长是否知晓1")
    @TableField("fam_know")
    @Excel(name = "家长是否知晓1")
    public String famKnow;


    @ApiModelProperty("预计留校时间")
    @TableField("will_stay_time")
    @Excel(name = "预计留校时间")
    public String willStayTime;

    @ApiModelProperty("离校或留校状态")
    @TableField("leave_status")
    @Excel(name = "离校或留校状态")
    public String leaveStatus;

    @ApiModelProperty("是否到家")
    @TableField("is_home")
    @Excel(name = "是否到家")
    public String isHome;

    @ApiModelProperty("到家定位")
    @TableField("home_gps")
    @Excel(name = "到家定位")
    public String homeGps;

    @ApiModelProperty("留校事由")
    @TableField("stay_reason")
    @Excel(name = "留校事由")
    public String stayReason;


    @ApiModelProperty("去向地")
    @TableField("will_addr")
    @Excel(name = "去向地")
    public String willAddr;


    @TableField("home_gps_addr")
    public String homeGpsAddr;

    @TableField("home_submit")
    public String homeSubmit;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("home_gps_time")
    public Date homeGpsTime;

    @TableField("more_dept_name")
    public String moreDeptName;

    @TableField("stu_fdy_name")
    public String stuFdyName;

    @TableField(exist = false)
    public Long pageNum;
    @TableField(exist = false)
    public Long pageSize;

}
