All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy