package com.srs.dormitory.domain;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * <p>
 * 外来人员住宿申请表
 * </p>
 *
 * @author szz
 * @since 2023年08月04日
 */
@Data
@TableName("dms_foreign_application")
@ApiModel(value = "DmsForeignApplication对象", description = "外来人员住宿申请表")
public class DmsForeignApplication implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("申请人姓名")
    @TableField("applicant_name")
    private String applicantName;

    @ApiModelProperty("申请人性别")
    @TableField("applicant_gender")
    private String applicantGender;

    @ApiModelProperty("身份证号")
    @TableField("id_card")
    private String idCard;

    @ApiModelProperty("联系电话")
    @TableField("phone_number")
    private String phoneNumber;

    @ApiModelProperty("校内联系人ID")
    @TableField("campus_contact_id")
    private Long campusContactId;

    @ApiModelProperty("申请原因")
    @TableField("reason")
    private String reason;

    @ApiModelProperty("入住开始时间")
    @TableField("start_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startDate;

    @ApiModelProperty("入住结束时间")
    @TableField("end_date")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endDate;

    @ApiModelProperty("创建时间")
    @TableField(value = "create_time",fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty("更新时间")
    @TableField(value = "update_time",fill = FieldFill.UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    @ApiModelProperty("状态 (0已提交 1待审核 2待分配 3已完成)")
    @TableField("status")
    private Integer status;

    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    @TableField("del_flag")
    private String delFlag;


}
