package jpa20mitbeanvalidation.entities;

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Version;


@Entity
public class Projektauftrag implements Serializable {

  @Id
  @GeneratedValue
  private int paid;

  private String titel;
  
  @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
  private Mitarbeiter bearbeiter;
  
  @ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
  private Rolle rolle;

  @Version
  private int version;

  public Projektauftrag(String titel) {
    this.titel = titel;
  }

  public Projektauftrag() {
  }

  public Mitarbeiter getBearbeiter() {
    return bearbeiter;
  }

  public void setBearbeiter(Mitarbeiter bearbeiter) {
    this.bearbeiter = bearbeiter;
  }

  public int getVersion() {
    return version;
  }

  public Rolle getRolle() {
    return rolle;
  }

  public void setRolle(Rolle rolle) {
    this.rolle = rolle;
  }

  public int getPaid() {
    return paid;
  }

  public void setPaid(int paid) {
    this.paid = paid;
  }

  public String getTitel() {
    return titel;
  }

  public void setTitel(String titel) {
    this.titel = titel;
  }

  @Override
  public String toString() {
    StringBuffer ergebnis = new StringBuffer("Aufgabe " + titel + " (" + paid + ") ");
    if (bearbeiter != null) {
      ergebnis.append("durch " + bearbeiter.getName());
    }
    if (rolle != null) {
      ergebnis.append(" als " + rolle.getName());
    }
    return ergebnis.toString();
  }
}
