package com.srs.survey.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.srs.common.core.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;




/**
 * 学生假期返校对象 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;


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

    @TableField(exist = false)
    @Excel(name = "主题名称")
    public String surveyName;

    @TableField(exist = false)
    public String teacherName;

    @TableField(exist = false)
    public String tNo;



    /**
     * 学生返校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;

    @TableField("more_dept_name")
    @Excel(name = "详细学院")
    public String moreDeptName;

    /**
     * 学号
     */
    @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 = "联系电话")
    public String phone;

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

    /**
     * 紧急联系人电话
     */
    @ApiModelProperty("紧急联系人电话")
    @TableField("emergency_contact_phone")
    @Excel(name = "紧急联系人电话")
    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;

    @Excel(name = "住宿校区")
    @TableField(exist = false)
    public String campusName;

    @Excel(name = "住宿园区")
    @TableField(exist = false)
    public String parkName;

    @Excel(name = "住宿楼栋")
    @TableField(exist = false)
    public String buildingName;

    @Excel(name = "宿舍号")
    @TableField(exist = false)
    public String roomNo;

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

    @ApiModelProperty("家长姓名（离校、留校）")
    @TableField("fam_name")
    @Excel(name = "家长姓名（离校、留校）")
    public String famName;

    @ApiModelProperty("家长电话（离校、留校）")
    @TableField("fam_phone")
    @Excel(name = "家长电话（离校、留校）")
    public String famPhone;

    @ApiModelProperty("家长是否知晓（离校、留校）")
    @TableField("fam_know")
    @Excel(name = "家长是否知晓（离校、留校）")
    public String famKnow;

    @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("will_addr")
    @Excel(name = "去向地")
    public String willAddr;

    @ApiModelProperty("去向地详细地址")
    @TableField("will_detail_addr")
    @Excel(name = "去向地详细地址")
    public String willDetailAddr;


    @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("will_stay_time")
    @Excel(name = "预计留校时间")
    public String willStayTime;

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

    @ApiModelProperty("离校、留校审核状态")
    @TableField("leave_status")
    @Excel(name = "离校、留校审核状态",dictType = "sur_status")
    public String leaveStatus;


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

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("home_gps_time")
    @Excel(name = "到家定位时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    public Date homeGpsTime;

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




    @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;


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

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

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

    /**
     * 家长电话
     */
    @ApiModelProperty("家长电话（返校）")
    @TableField("parent_phone")
    @Excel(name = "家长电话（返校）")
    public String parentPhone;

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


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



    @TableField("stu_fdy_name")
    @Excel(name = "学生辅导员姓名")
    public String stuFdyName;



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



    @TableField("home_gps_addr")
    public String homeGpsAddr;

    @TableField("home_submit")
    public String homeSubmit;



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

    /**
     * 是否填写筛选条件：null-全部，1-已填写，0-未填写 （2025-10-8测试提交）
     */
    @ApiModelProperty("是否填写筛选条件")
    @TableField(exist = false)
    public Integer isFilled;

}
