RestaurantMenuEntity.java
package sk.iway.iwcm.components.restaurant_menu.jpa;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EntityListeners;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonBackReference;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.system.adminlog.EntityListenersType;
import sk.iway.iwcm.system.datatable.DataTableColumnType;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumn;
import sk.iway.iwcm.system.datatable.annotations.DataTableColumnNested;
@Entity
@Table(name = "restaurant_menu")
@Getter
@Setter
@EntityListeners(sk.iway.iwcm.system.adminlog.AuditEntityListener.class)
@EntityListenersType(sk.iway.iwcm.Adminlog.TYPE_RESTAURANT_MENU)
public class RestaurantMenuEntity {
@Id
@Column(name = "menu_id")
@GeneratedValue(generator="WJGen_restaurant_menu")
@TableGenerator(name="WJGen_restaurant_menu",pkColumnValue="restaurant_menu")
@DataTableColumn(inputType = DataTableColumnType.ID, title="ID",orderable = false)
private Long id;
@Column(name = "day")
@DataTableColumn(
inputType = DataTableColumnType.DATE,
title="components.stat.seo.google.position.searching.day",
sortAfter = "editorFields.dayOfWeek",
orderable = false
)
private Date dayDate;
@Column(name = "priority")
@DataTableColumn(
inputType = DataTableColumnType.NUMBER,
title="components.stat.seo.google.position.searching.position",
orderable = false
)
private Integer priority;
@Column(name = "domain_id")
@NotNull
private Integer domainId;
@Column(name = "menu_meals_id", insertable = false, updatable = false)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private Long mealId;
@Transient
@DataTableColumnNested
private RestaurantMenuEditorFields editorFields = null;
@ManyToOne
@JsonBackReference(value="restaurantMenuMealsEntity")
@JoinColumn(name="menu_meals_id")
private RestaurantMenuMealsEntity meal;
//For FE old version -> for jsp
@Transient
public int getDayNumber() {
Calendar cal = Calendar.getInstance();
cal.setTime(dayDate);
return cal.get(Calendar.DAY_OF_WEEK);
}
@Transient
public String getDayFormated() {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
return dateFormat.format(dayDate);
}
}