package hu.sch.domain;
import hu.sch.domain.enums.EntrantType;
import hu.sch.domain.user.User;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;
import javax.persistence.Transient;
/**
* Egy felhasználóhoz tartozó belépőigény
*
* @author hege
*/
@Entity
@Table(name = "belepoigenyles")
public class EntrantRequest extends AbstractValuationRequest {
//----------------------------------------------------
@Column(name = "szoveges_ertekeles", columnDefinition = "text", length = 4096)
private String valuationText;
//----------------------------------------------------
@Enumerated(EnumType.STRING)
@Column(name = "belepo_tipus")
private EntrantType entrantType;
public EntrantRequest() {
this(null, EntrantType.KDO);
}
public EntrantRequest(final User user, final EntrantType entrantType) {
this.entrantType = entrantType;
setUser(user);
}
public EntrantType getEntrantType() {
return entrantType;
}
public void setEntrantType(final EntrantType entrantType) {
this.entrantType = entrantType;
}
public String getValuationText() {
return valuationText;
}
public void setValuationText(final String valuationText) {
this.valuationText = valuationText;
}
@Override
public String toString() {
return "EntrantRequest: " + entrantType + " (" + valuationText + ")";
}
/**
* Lemásoljuk a kérelmet, hogy egy új értékeléshez elmenthessük.
*
* @param v az új értékelés, amihez lemásoltuk a kérelmet
* @return másolat, amit elmenthetünk újként
*/
public EntrantRequest copy(final Valuation v) {
final EntrantRequest er = new EntrantRequest();
er.setValuation(v);
er.setValuationText(valuationText);
er.setEntrantType(entrantType);
er.setUser(getUser());
return er;
}
/**
* Érvényes-e a belépőkérelem, tehát ha ÁB, vagy KB típusú, akkor legyen
* hozzá értékelés
*
* @return
*/
public boolean isValid() {
return !((entrantType == EntrantType.AB || entrantType == EntrantType.KB) && valuationText == null);
}
}