Postulante.java 6.57 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 13
import lombok.Data;

14
import java.util.ArrayList;
15
import java.util.Date;
16
import java.util.List;
17

18 19 20

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

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

34
    @Column(name = "apellido")
35
    @NotBlank(message = "Este campo no puede estar vacio")
36
    @Size(max = 255)
37

38 39
    private String apellido;

40
    @Column(name = "nro_document")
41
    @NotBlank(message = "Este campo no puede estar vacio")
42
    @Size(max = 120)
43

44
    private String nroDocument;
45

46
    @Column(name = "correo")
47
    @NotBlank(message = "Este campo no puede estar vacio")
48
    @Email(message = "Formato incorrecto de correo")
49

50 51
    private String correo;

52 53 54 55 56
    @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;
57

58
    @Column(name = "telefono")
59
    @NotBlank(message = "Este campo no puede estar vacio")
60 61
    private String telefono;

62
    @Column(name = "fecha_nacimiento")
63 64
    @NotNull(message = "Este campo no puede estar vacio")
    @Past(message = "Este campo no puede estar en el futuro")
65 66
    private Date fechaNacimiento;

67
    @Column(name = "resumen")
68 69
    private String resumen;

70
    @Column(name = "nivel_ingles")
71 72
    @Min(value = 1)
    @Max(value = 5)
73
    private Long nivelIngles;
74

75
    @Column(name = "curriculum")
76 77
    private String curriculum;

willgonzz committed
78
    @Column(name="estado_civil")
79
    @NotNull
80
    private EstadoCivil estadoCivil;
81 82 83 84 85 86 87

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

88 89
   
    @Column(name="nacionalidad", length = 2)
90
    @NotNull
91
    private Nacionalidad nacionalidad;
92

93 94 95
    @Column(name = "tipo_documento",length = 3)
    @NotNull
    private TipoDocumento tipoDocumento;
96

97

98 99
    @Column(name = "disponibilidad", length = 2)
    private Disponibilidad disponibilidad;
100

101
    @JsonManagedReference(value = "postulantetecnologia-postulante")
102
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
103 104
    private List<PostulanteTecnologia> tecnologias;
    
105
    @JsonManagedReference(value = "experiencia-postulante")
106
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
107
    private List<Experiencia> experiencias = new ArrayList<>();
108

109
    @JsonManagedReference(value = "estudio-postulante")
110
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
111 112
    private List<Estudio> estudios;

113 114 115 116
    @JsonManagedReference
    @OneToMany(mappedBy = "postulante",cascade = CascadeType.ALL)
    private List<ReferenciaPersonal> referencias;

117
    @ManyToMany()
118 119 120 121 122 123
    @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;

124

125
  
126 127
    public String getnroDocument() {
        return nroDocument;
128 129
    }

130 131
    public void setnroDocument(String nroDocument) {
        this.nroDocument = nroDocument;
132 133 134 135 136 137 138 139 140 141
    }

    public Date getFechaNacimiento() {
        return fechaNacimiento;
    }

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

142
    public void setFechaNacimiento(String fechaNacimiento) {
143
        this.fechaNacimiento = Helper.convertirFecha(fechaNacimiento);
144
    }
145
    public Disponibilidad getDisponibilidad() {
146
        return disponibilidad;
147 148 149
    } 
    public void setDisponibilidad(Disponibilidad disponibilidad) {
        this.disponibilidad = disponibilidad;
150
    }
151 152
    public Ciudad getCiudad() {
        return this.ciudad;
153 154
    }

155 156 157 158 159 160 161 162 163 164
    public void setCiudad(Ciudad ciudad) {
        this.ciudad = ciudad;
    }

    public Long getCiudadId() {
        return this.ciudadId;
    }
    public void setCiudadId(Long ciudadId) {
        this.ciudadId = ciudadId;
    }
165
  
166
    public void setTipoDocumento(TipoDocumento tipoDocumento) {
167 168
        this.tipoDocumento = tipoDocumento;
    }
169
    public TipoDocumento getTipoDocumento() {
170 171
        return tipoDocumento;
    }
172 173 174 175 176 177
    public void setEstadoCivil(EstadoCivil estadoCivil) {
        this.estadoCivil = estadoCivil;
    }
    public EstadoCivil getEstadoCivil() {
        return estadoCivil;
    }
178
    public Nacionalidad getNacionalidad() {
179 180
        return nacionalidad;
    }
181
    public void setNacionalidad(Nacionalidad nacionalidad) {
182
        this.nacionalidad = nacionalidad;
183
    }
184 185 186 187 188 189 190 191 192 193 194 195 196
    public List<PostulanteTecnologia> getTecnologias() {
        return tecnologias;
    }
    public void setTecnologias(List<PostulanteTecnologia> tecnologias) {
        this.tecnologias = tecnologias;
    }

    public List<Estudio> getEstudios() {
        return estudios;
    }
    public void setEstudios(List<Estudio> estudios) {
        this.estudios = estudios;
    }
197 198 199
    public List<Experiencia> getExperiencias() {
        return experiencias;
    }
200 201 202
    public void setExperiencias(List<Experiencia> experiencias) {
        this.experiencias = experiencias;
    }
203 204 205 206 207 208 209 210 211 212 213 214 215 216
    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;
    }
217 218 219 220 221 222 223 224 225 226 227 228 229
    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;
    }
230
}