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

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

import javax.persistence.*;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;

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


    @Id
    @SequenceGenerator(name = "uzytavconsolca_seq", sequenceName = "SEQ_UZYTAVCONSOLCA", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytavconsolca_seq")
    @Column(name = "uzytavconsolca_id")
    private Long uzytavconsolca_id;


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

    @Column(name = "uzytavconsolca_observa", length = 4000)
    private String uzytavconsolca_observa;

    @Column(name = "uzytavconsolca_mensaje_correo", length = 4000)
    private String uzytavconsolca_mensaje_correo;

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

    @Column(name = "uzytavconsolca_direccion_correo", length = 150)
    private String uzytavconsolca_direccion_correo;

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

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

    //RELACION CON PROYEC-TABLA PADRE

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

    //RELACION CON CABCOMCA- CANSOLCA ES PADRE

    @JsonIgnore
    @OneToMany(mappedBy = "uzytavconsolca")
    private Set<ModelUzyTavCabComca> modelUzyTavCabComcas = new LinkedHashSet<>();

    //RELACIÓN CON LA TABLA uzytavcabevalp- TABLA HIJA

    @JsonIgnore
    @OneToMany(mappedBy = "uzytavconsolca")
    private Set<ModelUzyTavCabeValp> modelUzyTavCabeValpSet = new LinkedHashSet<>();


}