package com.salesmanager.core.model.system; import java.io.Serializable; import java.util.Date; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.EntityListeners; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.TableGenerator; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.UniqueConstraint; import com.salesmanager.core.constants.SchemaConstant; import com.salesmanager.core.model.common.audit.AuditListener; import com.salesmanager.core.model.common.audit.AuditSection; import com.salesmanager.core.model.common.audit.Auditable; import com.salesmanager.core.model.generic.SalesManagerEntity; import com.salesmanager.core.model.merchant.MerchantStore; import com.salesmanager.core.model.user.User; @Entity @EntityListeners(value = AuditListener.class) @Table(name = "SYSTEM_NOTIFICATION", schema= SchemaConstant.SALESMANAGER_SCHEMA,uniqueConstraints= @UniqueConstraint(columnNames = {"MERCHANT_ID", "CONFIG_KEY"}) ) public class SystemNotification extends SalesManagerEntity<Long, SystemNotification> implements Serializable, Auditable { /** * */ private static final long serialVersionUID = -6269172313628887000L; @Id @Column(name = "SYSTEM_NOTIF_ID") @TableGenerator(name = "TABLE_GEN", table = "SM_SEQUENCER", pkColumnName = "SEQ_NAME", valueColumnName = "SEQ_COUNT", pkColumnValue = "SYST_NOTIF_SEQ_NEXT_VAL") @GeneratedValue(strategy = GenerationType.TABLE, generator = "TABLE_GEN") private Long id; @Column(name="CONFIG_KEY") private String key; @Column(name="VALUE") private String value; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="MERCHANT_ID", nullable=true) private MerchantStore merchantStore; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="USER_ID", nullable=true) private User user; @Temporal(TemporalType.DATE) @Column(name = "START_DATE") private Date startDate; @Temporal(TemporalType.DATE) @Column(name = "END_DATE") private Date endDate; @Embedded private AuditSection auditSection = new AuditSection(); public AuditSection getAuditSection() { return auditSection; } public void setAuditSection(AuditSection auditSection) { this.auditSection = auditSection; } @Override public Long getId() { return id; } @Override public void setId(Long id) { this.id = id; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public void setStartDate(Date startDate) { this.startDate = startDate; } public Date getStartDate() { return startDate; } public void setMerchantStore(MerchantStore merchantStore) { this.merchantStore = merchantStore; } public MerchantStore getMerchantStore() { return merchantStore; } public void setEndDate(Date endDate) { this.endDate = endDate; } public Date getEndDate() { return endDate; } public void setUser(User user) { this.user = user; } public User getUser() { return user; } }