package no.dusken.barweb.plugin.vaktplugin.model;
import no.dusken.barweb.model.BarPerson;
import no.dusken.common.model.DuskenObject;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author Marvin B. Lillehaug <lillehau@underdusken.no>
*/
@Entity
@Table(name = "vakt")
@SequenceGenerator(name = "vakt_seq", sequenceName = "vakt_id_seq")
public class Vakt extends DuskenObject {
@Size(min = 2, max = 50)
@Column(length = 50, nullable = false)
@NotNull
private String name;
@Temporal(TemporalType.TIMESTAMP)
@Column(nullable = false)
@DateTimeFormat(iso= DateTimeFormat.ISO.DATE)
private Date time;
@OneToOne
private BarPerson attendand;
@OneToOne
private BarPerson secondAttendand;
@Override
public String toString() {
SimpleDateFormat format = new SimpleDateFormat("dd.MM");
return name + " " + format.format(time.getTime());
}
public Date getTime() {
return time;
}
public void setTime(Date time) {
this.time = time;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BarPerson getAttendand() {
return attendand;
}
public void setAttendand(BarPerson attendand) {
this.attendand = attendand;
}
public BarPerson getSecondAttendand() {
return secondAttendand;
}
public void setSecondAttendand(BarPerson secondAttendand) {
this.secondAttendand = secondAttendand;
}
public boolean canResign(BarPerson barPerson){
Calendar resignLimit = Calendar.getInstance();
resignLimit.add(Calendar.DAY_OF_YEAR, 4);
return barPerson != null && getTime().after(resignLimit.getTime()) && (barPerson.equals(getAttendand()) || barPerson.equals(getSecondAttendand()));
}
}