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


import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.LinkedHashSet;
import java.util.Set;

@Getter
@Setter
@Entity
@Table(name = "uzytavpresup", schema = "UTIC1")
public class ModelUzyTavPresup {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavpresup_seq")
    @SequenceGenerator(name = "uzytavpresup_seq", sequenceName = "SEQ_UZYPRESUP", allocationSize = 1)
    @Column(name = "uzytavpresup_id")
    private Long uzytavpresup_id;


    @Column(name = "uzytavpresup_valor", precision = 8, scale = 2)
    private BigDecimal uzytavpresup_valor;

    @Column(name = "uzytavpresup_esptecnic", length = 250)
    private String uzytavpresup_esptecnic;

    @Column(name = "uzytavpresup_tipogasto", length = 1)
    private String uzytavpresup_tipogasto;

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

    @Column(name = "uzytavpresup_bien_servicio", length = 250)
    private String uzytavpresup_bien_servicio;

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

    @Column(name = "uzytavpresup_total_ejec", precision = 8)
    private Integer uzytavpresup_total_ejec;

    @Column(name = "uzytavpresup_valoranual", length = 100)
    private String uzytavpresup_valoranual;

    //RELACIÓN CON PROYECTO- TABLA PADRE

    @ManyToOne( fetch = FetchType.LAZY)
    @JoinColumn(name = "uzytavproyec_id", referencedColumnName = "uzytavproyec_id")
    private ModelUzyTavProyec uzytavproyec;

    //RELACIÓN CON CLASSPREE- TABLA PADRE

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "uzytavclaspre_id", referencedColumnName = "uzytavclaspre_id")
    private ModelUzyTavClasPre uzytavclaspre;

    //RELACIÓN CON VALORANUAL-TABLA HIJA

    @JsonIgnore
    @OneToMany(mappedBy = "uzytavpresup")
    private Set<ModelUzyTavAnualValor> modelUzyTavAnualValorSet = new LinkedHashSet<>();


}