/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package mx.edu.um.mateo.rh.model;
import java.io.Serializable;
import java.util.Date;
import java.util.Objects;
import javax.persistence.*;
import mx.edu.um.mateo.general.model.Usuario;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotBlank;
/**
*
* @author AMDA
*/
@Entity
@Table(name = "empleado_estudios")
public class EmpleadoEstudios implements Comparable, Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
@Column(nullable = false, length = 75)
private String nombreEstudios;
@Enumerated(EnumType.STRING)
@Column(nullable = false,name = "nivel_estudios")
private NivelEstudios nivelEstudios;
//@NotBlank
private Boolean titulado;
@Temporal(TemporalType.DATE)
@Column(nullable = false,name="fecha_titulacion")
private Date fechaTitulacion;
@Length(max=2)
@Column(nullable = false, length = 2)
private String status;
private Usuario userCaptura;
@Temporal(TemporalType.DATE)
@Column(nullable = false,name="fecha_captura")
private Date fechaCaptura;
@Version
private Integer version;
@ManyToOne(optional=false)
private Empleado empleado;
public EmpleadoEstudios(){
}
public EmpleadoEstudios(Long id, String nombreEstudios, NivelEstudios nivelEstudios, Boolean titulado, Date fechaTitulacion, String status, Usuario userCaptura, Date fechaCaptura, Integer version, Empleado empleado) {
this.id = id;
this.nombreEstudios = nombreEstudios;
this.nivelEstudios = nivelEstudios;
this.titulado = titulado;
this.fechaTitulacion = fechaTitulacion;
this.status = status;
this.userCaptura = userCaptura;
this.fechaCaptura = fechaCaptura;
this.version = version;
this.empleado = empleado;
}
public Empleado getEmpleado() {
return empleado;
}
public void setEmpleado(Empleado empleado) {
this.empleado = empleado;
}
public Date getFechaCaptura() {
return fechaCaptura;
}
public void setFechaCaptura(Date fechaCaptura) {
this.fechaCaptura = fechaCaptura;
}
public Date getFechaTitulacion() {
return fechaTitulacion;
}
public void setFechaTitulacion(Date fechaTitulacion) {
this.fechaTitulacion = fechaTitulacion;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNombreEstudios() {
return nombreEstudios;
}
public void setNombreEstudios(String nombreEstudios) {
this.nombreEstudios = nombreEstudios;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Boolean getTitulado() {
return titulado;
}
public void setTitulado(Boolean titulado) {
this.titulado = titulado;
}
public Usuario getUserCaptura() {
return userCaptura;
}
public void setUserCaptura(Usuario userCaptura) {
this.userCaptura = userCaptura;
}
public Integer getVersion() {
return version;
}
public NivelEstudios getNivelEstudios() {
return nivelEstudios;
}
public void setNivelEstudios(NivelEstudios nivelEstudios) {
this.nivelEstudios = nivelEstudios;
}
public void setVersion(Integer version) {
this.version = version;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final EmpleadoEstudios other = (EmpleadoEstudios) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
if (!Objects.equals(this.nombreEstudios, other.nombreEstudios)) {
return false;
}
if (!Objects.equals(this.version, other.version)) {
return false;
}
return true;
}
@Override
public int hashCode() {
int hash = 7;
hash = 67 * hash + Objects.hashCode(this.id);
hash = 67 * hash + Objects.hashCode(this.nombreEstudios);
hash = 67 * hash + Objects.hashCode(this.version);
return hash;
}
@Override
public String toString() {
return "EmpleadoEstudios{" + "id=" + id +", Empleado" + ", nombreEstudios=" + nombreEstudios + ", titulado=" + titulado + ", fechaTitulacion=" + fechaTitulacion +", nivelEstudios=" + nivelEstudios + ", status=" + status + ", userCaptura=" + userCaptura + ", fechaCaptura=" + fechaCaptura + ", version=" + version + '}';
}
@Override
public int compareTo(Object o) {
if (o instanceof EmpleadoEstudios) {
EmpleadoEstudios d = (EmpleadoEstudios) o;
return this.getId().compareTo(d.getId());
}
return -1;
}
}