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

@Getter
@Setter
@Entity
@Table(name = "UZYTPERFIL", schema = "UTIC1")
public class ModelUzyTPerfil {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "uzytperfil_seq")
    @SequenceGenerator(name = "uzytperfil_seq", sequenceName = "SEQ_UZYTPERFIL", allocationSize = 1)
    @Column(name = "UZYTPERFIL_ID")
    private Long uzytperfil_id;

    @Size(max = 50)
    @Column(name = "UZYTPERFIL_NOMBRE", length = 50)
    private String uzytperfil_nombre;

    @OneToMany(mappedBy = "uzytperfil")
    private Set<ModelUzyTPerfilMenu> uzytperfilmenus = new LinkedHashSet<>();
    @JsonIgnore
    @ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "UZYTPERFIL_USUARIO",
            joinColumns = @JoinColumn(name = "UZYTPERFIL_ID"),
            inverseJoinColumns = @JoinColumn(name = "UZYTUSUARIO_ID"))
    private Set<ModelUzyTUsuario> uzytusuarios = new LinkedHashSet<>();
}