Postulante.java 7.78 KB
Newer Older
1 2
package com.roshka.modelo;

3
import javax.persistence.*;
4
import javax.validation.constraints.*;
5

willgonzz committed
6
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
7
import com.fasterxml.jackson.annotation.JsonIgnore;
8
import com.fasterxml.jackson.annotation.JsonManagedReference;
willgonzz committed
9
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
10
import com.roshka.utils.Helper;
11 12

import java.util.ArrayList;
13
import java.util.Date;
14
import java.util.List;
15

16 17 18

@Entity
@Table(name="postulante")
willgonzz committed
19
@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property="@UUID")
20
public class Postulante {
21
    @Id
22
    @GeneratedValue(strategy = GenerationType.IDENTITY)
23
    @Column(name="id")
24 25
    private long id;

26
    @Column(name="nombre")
27
    @NotBlank(message = "Este campo no puede estar vacio")
28
    @Size(max = 255)
29 30
    private String nombre;

31
    @Column(name = "apellido")
32
    @NotBlank(message = "Este campo no puede estar vacio")
33
    @Size(max = 255)
34 35
    private String apellido;

36
    @Column(name = "nro_document")
37
    @NotBlank(message = "Este campo no puede estar vacio")
38
    @Size(max = 120)
39
    private String nroDocument;
40

41
    @Column(name = "correo")
42
    @NotBlank(message = "Este campo no puede estar vacio")
43
    @Email(message = "Formato incorrecto de correo")
44 45
    private String correo;

46 47 48 49 50
    @ManyToOne(targetEntity = Ciudad.class,fetch = FetchType.EAGER)
    @JoinColumn(name="ciudad_id",insertable = false, updatable = false)
    private Ciudad ciudad;
    @Column(name="ciudad_id")
    private Long ciudadId;
51

52
    @Column(name = "telefono")
53
    @NotBlank(message = "Este campo no puede estar vacio")
54 55
    private String telefono;

56
    @Column(name = "fecha_nacimiento")
57 58
    @NotNull(message = "Este campo no puede estar vacio")
    @Past(message = "Este campo no puede estar en el futuro")
59 60
    private Date fechaNacimiento;

61
    @Column(name = "resumen")
62 63
    private String resumen;

64
    @Column(name = "nivel_ingles")
65 66
    @Min(value = 1)
    @Max(value = 5)
67
    private Long nivelIngles;
68 69


willgonzz committed
70
    @Column(name="estado_civil")
71
    @NotNull
72
    private EstadoCivil estadoCivil;
73 74 75 76 77 78 79

    @Column(name="estado_postulante")
    @NotNull
    private EstadoPostulante estadoPostulante=EstadoPostulante.NUEVO;
    @Column(name="comentario_rrhh")
    private String comentarioRRHH;    

80 81
   
    @Column(name="nacionalidad", length = 2)
82
    @NotNull
83
    private Nacionalidad nacionalidad;
84

85 86 87
    @Column(name = "tipo_documento",length = 3)
    @NotNull
    private TipoDocumento tipoDocumento;
88

89

90 91
    @Column(name = "disponibilidad", length = 2)
    private Disponibilidad disponibilidad;
92

93
    @JsonManagedReference(value = "postulantetecnologia-postulante")
94
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
95 96
    private List<PostulanteTecnologia> tecnologias;
    
97
    @JsonManagedReference(value = "experiencia-postulante")
98
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
99
    private List<Experiencia> experiencias = new ArrayList<>();
100

101
    @JsonManagedReference(value = "estudio-postulante")
102
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
103 104
    private List<Estudio> estudios;

105 106 107 108
    @JsonManagedReference
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
    private List<ReferenciaPersonal> referencias;

109
    @ManyToMany()
110 111 112 113 114 115
    @JoinTable(uniqueConstraints = @UniqueConstraint(columnNames = {"postulante_id","convocatoria_cargo_id"}),
                joinColumns = @JoinColumn(name="postulante_id", referencedColumnName="id"),
                inverseJoinColumns= @JoinColumn(name="convocatoria_cargo_id", referencedColumnName="id")
    )
    private List<ConvocatoriaCargo> postulaciones;

116 117 118 119 120
    @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    @JoinColumn(name = "cvfile_id",referencedColumnName = "id")
    @JsonIgnore
    private DBFile cvFile;

121

122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }


147 148
    public void setnroDocument(String nroDocument) {
        this.nroDocument = nroDocument;
149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
    }

    public String getCorreo() {
        return correo;
    }

    public void setCorreo(String correo) {
        this.correo = correo;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

    public void setFechaNacimiento(Date fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }

175
    public void setFechaNacimiento(String fechaNacimiento) {
176
        this.fechaNacimiento = Helper.convertirFecha(fechaNacimiento);
177 178
    }

179 180 181 182 183 184 185 186
    public String getResumen() {
        return resumen;
    }

    public void setResumen(String resumen) {
        this.resumen = resumen;
    }

187
    public Long getNivelIngles() {
188 189 190
        return nivelIngles;
    }

191
    public void setNivelIngles(Long nivelIngles) {
192 193 194
        this.nivelIngles = nivelIngles;
    }

195
    public Disponibilidad getDisponibilidad() {
196 197 198
        return disponibilidad;
    }

199 200
    public Ciudad getCiudad() {
        return this.ciudad;
201 202
    }

203 204 205 206 207 208 209 210 211 212 213
    public void setCiudad(Ciudad ciudad) {
        this.ciudad = ciudad;
    }

    public Long getCiudadId() {
        return this.ciudadId;
    }

    public void setCiudadId(Long ciudadId) {
        this.ciudadId = ciudadId;
    }
214
    public void setEstadoCivil(EstadoCivil estadoCivil) {
215 216
        this.estadoCivil = estadoCivil;
    }
217
    public void setTipoDocumento(TipoDocumento tipoDocumento) {
218 219
        this.tipoDocumento = tipoDocumento;
    }
220
    public EstadoCivil getEstadoCivil() {
221 222
        return estadoCivil;
    }
223
    public TipoDocumento getTipoDocumento() {
224 225
        return tipoDocumento;
    }
226
    public Nacionalidad getNacionalidad() {
227 228 229
        return nacionalidad;
    }

230
    public void setNacionalidad(Nacionalidad nacionalidad) {
231
        this.nacionalidad = nacionalidad;
232 233
    }

234
    public void setDisponibilidad(Disponibilidad disponibilidad) {
235 236
        this.disponibilidad = disponibilidad;
    }
237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256

    public List<PostulanteTecnologia> getTecnologias() {
        return tecnologias;
    }
    public void setTecnologias(List<PostulanteTecnologia> tecnologias) {
        this.tecnologias = tecnologias;
    }

    public List<Estudio> getEstudios() {
        return estudios;
    }
    public List<Experiencia> getExperiencias() {
        return experiencias;
    }
    public void setEstudios(List<Estudio> estudios) {
        this.estudios = estudios;
    }
    public void setExperiencias(List<Experiencia> experiencias) {
        this.experiencias = experiencias;
    }
257 258 259 260 261 262 263 264 265 266 267 268 269 270
    public List<ConvocatoriaCargo> getPostulaciones() {
        return postulaciones;
    }
    public void setPostulaciones(List<ConvocatoriaCargo> postulaciones) {
        this.postulaciones = postulaciones;
    }

    public void setReferencias(List<ReferenciaPersonal> referencias) {
        this.referencias = referencias;
    }

    public List<ReferenciaPersonal> getReferencias() {
        return referencias;
    }
271 272 273 274 275 276 277 278 279 280 281 282 283
    public EstadoPostulante getEstadoPostulante() {
        return this.estadoPostulante;
    }

    public void setEstadoPostulante(EstadoPostulante estadoPostulante) {
        this.estadoPostulante = estadoPostulante;
    }
    public String getComentarioRRHH(){
        return comentarioRRHH;
    }
    public void setComentarioRRHH(String comentarioRRHH){
        this.comentarioRRHH=comentarioRRHH;
    }
284 285 286 287 288 289 290 291 292
    public DBFile getCvFile() {
        return cvFile;
    }
    public String getNroDocument() {
        return nroDocument;
    }
    public void setCvFile(DBFile cvFile) {
        this.cvFile = cvFile;
    }
293
}