package ec.edu.espe.movilidad.MovilidadWS.Model;


import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;

@Getter
@Setter
@Entity
@Table(name = "UZYTAVINSTPROY", schema = "UTIC1")
public class ModelUzyTavInstProy {
    @Id
    @Column(name = "UZYTAVINSTPROY_ID")
    private Long UZYTAVINSTPROY_ID;

    //RELACION CON PROYECTO- TABLA PADRE
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "UZYTAVPROYEC_ID")
    private ModelUzyTavProyec uzytavproyec;

    @Column(name = "UZYTAVINSTITUC_ID")
    private Long UZYTAVINSTITUC_ID;

    //RELACIÓN CON PARAMETROS_DET- TABLA PADRE

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "UZYTPARAMETROS_DET_ID_ORGANIZACION")
    private ModelUzyTavParametros_Det uzytparametrosDetIdOrganizacion;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "UZYTPARAMETROS_DET_ID_ENTIDAD")
    private ModelUzyTavParametros_Det uzytparametrosDetIdEntidad;

    @Size(max = 100)
    @Column(name = "UZYTAVINSTPROY_DETAOTRO", length = 100)
    private String UZYTAVINSTPROY_DETAOTRO;

    @Size(max = 2000)
    @Column(name = "UZYTAVINSTPROY_DECLARACION", length = 2000)
    private String UZYTAVINSTPROY_DECLARACION;

    @Column(name = "UZYTAVINSTPROY_FECHA_CREA")
    private Date UZYTAVINSTPROY_FECHA_CREA;

    @Column(name = "UZYTAVINSTPROY_DIR_HOMBRES")
    private Integer UZYTAVINSTPROY_DIR_HOMBRES;

    @Column(name = "UZYTAVINSTPROY_DIR_MUJERES")
    private Integer UZYTAVINSTPROY_DIR_MUJERES;

    @Column(name = "UZYTAVINSTPROY_DIR_NINIOS")
    private Integer UZYTAVINSTPROY_DIR_NINIOS;

    @Column(name = "UZYTAVINSTPROY_DIR_DISCAPACIDAD")
    private Integer UZYTAVINSTPROY_DIR_DISCAPACIDAD;

    @Column(name = "UZYTAVINSTPROY_INDIRECTOS")
    private Integer UZYTAVINSTPROY_INDIRECTOS;

    @Size(max = 150)
    @Column(name = "UZYTAVINSTPROY_DESC_BENEFIC", length = 150)
    private String UZYTAVINSTPROY_DESC_BENEFIC;

    //RELACIÓN CON uzytavinstproy- TABLA HIJA

    @JsonIgnore
    @OneToMany(mappedBy = "uzytavinstproy")
    private Set<ModelUzyTavDoCompar> uzyTavDoComparSet = new LinkedHashSet<>();

}