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.LinkedHashSet;
import java.util.Set;

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

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytcanton_seq")
    @SequenceGenerator(name = "uzytcanton_seq", sequenceName = "SEQ_UZYTCANTON", allocationSize = 1)
    @Column(name = "uzytcanton_id")
    private String uzytcanton_id;

    @Column(name = "uzytcantonnombre")
    private String uzytcantonnombre;

    @Column(name = "uzytcantonbanner")
    private String uzytcantonbanner;

    @Column(name = "uzytcantongrupo")
    private Integer uzytcantonGrupo;

    @Column(name = "uzytcantonlatitud")
    private Double uzytcantonLatitud;

    @Column(name = "uzytcantonlongitud")
    private Double uzytcantonLongitud;

    //RELACIÓN CON LA TABLA PROVINCIA- TABLA PADRE

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "uzytprovincia_id")
    private ModelUzyTProvincia uzytprovincia;

    //RELACIÓN CON LA TABLA PLANIFICACIÓN-TABLA PADRE

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "uzytplanificacion_id")
    private ModelUzyTPlanificacion uzytplanificacion;

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


    @JsonIgnore
    @OneToMany(mappedBy = "uzytcanton")
    private Set<ModelUzyTParroquia> modelUzyTParroquiaSet = new LinkedHashSet<>();

    //Relación con la tabla zonadetalle-tabla hija
    @JsonIgnore
    @OneToMany(mappedBy = "uzytcanton")
    private Set<ModelUzyTavZonaDetalle> modelUzyTavZonaDetalleSet = new LinkedHashSet<>();


}