com.nebula.boxes.iface.model.view.ResumeView Maven / Gradle / Ivy
The newest version!
package com.nebula.boxes.iface.model.view;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Data
@Builder
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class ResumeView implements Serializable {
@ApiModelProperty("唯一ID")
private long id;
@ApiModelProperty("简历类型")
private int type;
@ApiModelProperty("简历编号")
private String uuid;
@ApiModelProperty("用户编号")
private long userId;
@ApiModelProperty("头像")
private String photo;
@ApiModelProperty("真实姓名")
private String realName;
@ApiModelProperty("年龄")
private int age;
@ApiModelProperty("性别")
private String sexLabel;
@ApiModelProperty("当前公司名称")
private String firmName;
@ApiModelProperty("当前职位")
private String jobName;
@ApiModelProperty("生日")
private LocalDateTime birthday;
@ApiModelProperty("籍贯")
private String nativePlace;
@ApiModelProperty("民族")
private String nation;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("手机号")
private String phone;
@ApiModelProperty("个人介绍")
private String introduce;
@ApiModelProperty("学历")
private String workEdu;
@ApiModelProperty("工作年限")
private String workYear;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
@ApiModelProperty("技能熟练度")
private Map skillTags;
@ApiModelProperty("文档简历")
private ResumeFile resumeFile;
@ApiModelProperty("供职履历")
private List companies;
@ApiModelProperty("教育经历")
private List educations;
@ApiModelProperty("项目经验")
private List experiences;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class ResumeFile implements Serializable {
@ApiModelProperty("原始文件名称")
private String originalName;
@ApiModelProperty("云存储文件名称")
private String storageName;
@ApiModelProperty("存储地址")
private String storageUrl;
@ApiModelProperty("上传时间")
private LocalDateTime createTime;
@ApiModelProperty("更新时间")
private LocalDateTime updateTime;
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class Education implements Serializable {
@ApiModelProperty("唯一ID")
private long id;
@ApiModelProperty("简历编号")
private long resumeId;
@ApiModelProperty("学校")
private String schoolName;
@ApiModelProperty("专业")
private String majorName;
@ApiModelProperty("学历")
private String degree;
@ApiModelProperty("附加说明")
private String addition;
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty("开始时间")
private Date startTime;
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty("结束时间")
private Date endTime;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public static class Company implements Serializable {
@ApiModelProperty("企业Logo")
protected String firmLogo;
@ApiModelProperty("企业编号")
protected String firmUuid;
@ApiModelProperty("公司名称")
protected String firmName;
@ApiModelProperty("职位名称")
protected String jobName;
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty("开始时间")
private Date startTime;
@JSONField(format = "yyyy-MM-dd")
@ApiModelProperty("结束时间")
private Date endTime;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public static class Experience extends Company implements Serializable {
@Builder
public Experience(String firmLogo, String firmUuid, String firmName, String jobName, Date startTime, Date endTime, String itemName, String content, String addition) {
super(firmLogo, firmUuid, firmName, jobName, startTime, endTime);
this.itemName = itemName;
this.content = content;
this.addition = addition;
}
@ApiModelProperty("唯一ID")
private long id;
@ApiModelProperty("简历编号")
private long resumeId;
@ApiModelProperty("项目名称")
private String itemName;
@ApiModelProperty("项目描述")
private String content;
@ApiModelProperty("附加说明")
private String addition;
}
}