/**
 * Copyright (c) 2018-2099, Chill Zhuang 庄骞 (bladejava@qq.com).
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.xiaoniu.subsystem.business.domain.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoniu.common.core.annotation.Excel;
import com.xiaoniu.subsystem.business.domain.ProjectPersonnelInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serial;
import java.util.Date;
import java.util.List;

/**
 * 计划人员信息表视图实体类
 *
 * @author sst
 * @since 2024-11-26
 */
@Data
@Accessors(chain = true)
@Schema(description = "计划人员信息表")
public class PersonnelInfoVO {
	@Serial
	private static final long serialVersionUID = 1L;
	/**
	 * 报名人员ID
	 */
	@Schema(description = "报名人员ID")
	private Long userId;
	/**
	 * 计划ID
	 */
	@Schema(description = "计划ID")
	private Long projectId;
	/**
	 * 姓名
	 */
	@Schema(description = "姓名")
	private String userName;
	/**
	 * 学员类型
	 */
	@Schema(description = "学员类型")
	private String traineeType;

	@Schema(description = "专业类型")
	private String majorType;
	/**
	 * 性别（0男 1女 2未知）
	 */
	@Schema(description = "性别（0男 1女 2未知）")
	private String sex;
	/**
	 * 籍贯
	 */
	@Schema(description = "籍贯")
	private String nativePlace;
	/**
	 * 民族
	 */
	@Schema(description = "民族")
	private String nation;
	/**
	 * 身份证号
	 */
	@Schema(description = "身份证号")
	private String idCard;
	/**
	 * 班次ID
	 */
	@Schema(description = "班次ID")
	private Long flightId;
	/**
	 * 班次名称
	 */
	@Schema(description = "班次名称")
	private String flightName;
	/**
	 * 承训单位ID
	 */
	@Schema(description = "承训单位ID")
	private Long trainingUnitId;
	/**
	 * 承训单位名称
	 */
	@Schema(description = "承训单位名称")
	private String trainingUnitName;
	/**
	 * 出生年月
	 */
	@Schema(description = "出生年月")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date birthday;
	/**
	 * 入伍年月
	 */
	@Schema(description = "入伍年月")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date enlistmentYear;
	/**
	 * 开训时间
	 */
	@Schema(description = "开训时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date trainingTime;
	/**
	 * 现岗位ID
	 */
	@Schema(description = "现岗位ID")
	private Long presentPostId;
	/**
	 * 现岗位名称
	 */
	@Schema(description = "现岗位名称")
	private String presentPostName;
	/**
	 * 现职时间
	 */
	@Schema(description = "现职时间")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date currentEmployment;
	/**
	 * 职务
	 */
	@Schema(description = "职务")
	private String job;
	/**
	 * 军衔
	 */
	@Schema(description = "军衔")
	private String militaryRank;
	/**
	 * 送训单位ID
	 */
	@Schema(description = "送训单位ID")
	private Long sendingUnitId;
	/**
	 * 送训单位名称
	 */
	@Schema(description = "送训单位名称")
	private String sendingUnitName;
	/**
	 * 送训单位地址
	 */
	@Schema(description = "送训单位地址")
	private String sendingUnitAddress;
	/**
	 * 学历（0小学 1初中 2高中 3中专 4大专 5本科 6研究生 7博士）
	 */
	@Schema(description = "学历（0小学 1初中 2高中 3中专 4大专 5本科 6研究生 7博士）")
	private String qualification;
	/**
	 * 单位联系人
	 */
	@Schema(description = "单位联系人")
	private String unitContact;
	/**
	 * 联系电话
	 */
	@Schema(description = "联系电话")
	private String phonenumber;

	@Schema(description = "培训类型（1=第一类,2=第二类,3=第三类......可多选）")
	private String trainingType;


	@Schema(description = "人员信息详情")
	private List<ProjectPersonnelInfoVO> infoVOS;

}
