package es.uv.saic.domain;

import java.io.Serializable;
import jakarta.persistence.*;
import java.util.List;


@Entity
@Table(name="rols")
@NamedQuery(name="Rol.findAll", query="SELECT r FROM Rol r")
public class Rol implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name="id_rol")
	private Integer idRol;

	private String ambit;

	@Column(name="descripcio_cas")
	private String descripcioCas;
	
	@Column(name="descripcio_val")
	private String descripcioVal;

	@Column(name="nom_rol")
	private String nomRol;

	//bi-directional many-to-one association to Tasca
	@OneToMany(mappedBy="rol")
	private List<Tasca> tasques;

	//bi-directional many-to-one association to UsuarisRol
	@OneToMany(mappedBy="rol")
	private List<UsuarisRol> usuarisRols;

	public Rol() {
	}

	public Integer getIdRol() {
		return this.idRol;
	}

	public void setIdRol(Integer idRol) {
		this.idRol = idRol;
	}

	public String getAmbit() {
		return this.ambit;
	}

	public void setAmbit(String ambit) {
		this.ambit = ambit;
	}
	
	public String getDescripcioCas() {
		return descripcioCas;
	}

	public void setDescripcioCas(String descripcioCas) {
		this.descripcioCas = descripcioCas;
	}

	public String getDescripcioVal() {
		return descripcioVal;
	}

	public void setDescripcioVal(String descripcioVal) {
		this.descripcioVal = descripcioVal;
	}

	public String getNomRol() {
		return this.nomRol;
	}

	public void setNomRol(String nomRol) {
		this.nomRol = nomRol;
	}

	public List<Tasca> getTasques() {
		return this.tasques;
	}

	public void setTasques(List<Tasca> tasques) {
		this.tasques = tasques;
	}

	public Tasca addTasque(Tasca tasca) {
		getTasques().add(tasca);
		tasca.setRol(this);

		return tasca;
	}

	public Tasca removeTasque(Tasca tasca) {
		getTasques().remove(tasca);
		tasca.setRol(null);

		return tasca;
	}

	public List<UsuarisRol> getUsuarisRols() {
		return this.usuarisRols;
	}

	public void setUsuarisRols(List<UsuarisRol> usuarisRols) {
		this.usuarisRols = usuarisRols;
	}

	public UsuarisRol addUsuarisRol(UsuarisRol usuarisRol) {
		getUsuarisRols().add(usuarisRol);
		usuarisRol.setRol(this);

		return usuarisRol;
	}

	public UsuarisRol removeUsuarisRol(UsuarisRol usuarisRol) {
		getUsuarisRols().remove(usuarisRol);
		usuarisRol.setRol(null);

		return usuarisRol;
	}

}