package com.eyrolles.model;

import java.util.ArrayList;
import java.util.Collection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

import com.fasterxml.jackson.annotation.JsonBackReference;

@Entity
@Table(name="auteurs")
public class Auteur {
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private int id;	
	private String nom;
	private String prenom;
	//mafamech cascade :'( :'( on a perdu bcp de temps 
	@ManyToMany
	@JsonBackReference
	@JoinTable(name="auteurs_livres",
	joinColumns=@JoinColumn(name="auteur_id", nullable=false, updatable=false),
	inverseJoinColumns = { @JoinColumn(name="livre_id", nullable=false, updatable=false) })
	private Collection<Livre> livres;
	
	
	public Auteur() {
		super();
	}
	public Auteur(String nom, String prenom) {
		super();
		this.nom = nom;
		this.prenom = prenom;
		livres = new ArrayList<Livre>();
		
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNom() {
		return nom;
	}
	public void setNom(String nom) {
		this.nom = nom;
	}
	public String getPrenom() {
		return prenom;
	}
	public void setPrenom(String prenom) {
		this.prenom = prenom;
	}
	public Collection<Livre> getLivres() {
		return livres;
	}
	public void setLivres(Collection<Livre> livres) {
		this.livres = livres;
	}
	public void setLivres(Livre livre) {
		livres.add(livre);
	}

}