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())); } }