Subversion Repositories SmartDukaan

Rev

Rev 29610 | Rev 29795 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.entity.catalog;

import java.io.Serializable;
import java.time.LocalDateTime;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
import com.spice.profitmandi.dao.enumuration.catalog.AchievementType;

@Entity
@Table(name = "catalog.offer", schema = "catalog")
public class Offer implements Serializable {

        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;

        @Column(name = "brand_share_percentage", nullable = false)
        private double brandSharePercentage;

        @Column(name = "name")
        private String name;

        @Column(name = "offer_notes")
        private String offerNotes;

        @Column(name = "terms")
        private String terms;

        @Column(name = "scheme_type")
        @Enumerated(EnumType.STRING)
        private OfferSchemeType schemeType;

        @Column(name = "incremental_target", nullable = false)
        private boolean incrementalTarget;

        @Column(name = "sellin_percentage")
        private double sellinPercentage;

        @Column(name = "target_type")
        @Enumerated(EnumType.STRING)
        private AchievementType targetType;

        @Column(name = "payout_type")
        @Enumerated(EnumType.STRING)
        private AchievementType payoutType;

        @Column(name = "activation_brands")
        private String activationBrands;

        @Column(name = "item_criteria")
        private String itemCriteria;

        @Column(name = "partner_criteria")
        private String partnerCriteria;

        @Column(name = "start_date")
        private LocalDateTime startDate = LocalDateTime.now();

        @Column(name = "end_date")
        private LocalDateTime endDate = LocalDateTime.now();

        @Column(name = "created_timestamp")
        private LocalDateTime createdTimestamp = LocalDateTime.now();

        @Column(name = "active", columnDefinition = "TINYINT(1)")
        private boolean active;

        public AchievementType getPayoutType() {
                return payoutType;
        }

        public void setPayoutType(AchievementType payoutType) {
                this.payoutType = payoutType;
        }

        @Override
        public String toString() {
                return "Offer [id=" + id + ", brandSharePercentage=" + brandSharePercentage + ", name=" + name + ", offerNotes="
                                + offerNotes + ", terms=" + terms + ", schemeType=" + schemeType + ", incrementalTarget="
                                + incrementalTarget + ", sellinPercentage=" + sellinPercentage + ", targetType=" + targetType
                                + ", payoutType=" + payoutType + ", activationBrands=" + activationBrands + ", itemCriteria="
                                + itemCriteria + ", partnerCriteria=" + partnerCriteria + ", startDate=" + startDate + ", endDate="
                                + endDate + ", createdTimestamp=" + createdTimestamp + ", active=" + active + ", itemCriteriaString="
                                + itemCriteriaString + "]";
        }

        public boolean isIncrementalTarget() {
                return incrementalTarget;
        }

        public void setIncrementalTarget(boolean incrementalTarget) {
                this.incrementalTarget = incrementalTarget;
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + id;
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Offer other = (Offer) obj;
                if (id != other.id)
                        return false;
                return true;
        }

        @Transient
        private String itemCriteriaString;

        public String getItemCriteriaString() {
                return itemCriteriaString;
        }

        public String getActivationBrands() {
                return activationBrands;
        }

        public void setActivationBrands(String activationBrands) {
                this.activationBrands = activationBrands;
        }

        public void setItemCriteriaString(String itemCriteriaString) {
                this.itemCriteriaString = itemCriteriaString;
        }

        public int getId() {
                return id;
        }

        public double getBrandSharePercentage() {
                return brandSharePercentage;
        }

        public void setBrandSharePercentage(double brandSharePercentage) {
                this.brandSharePercentage = brandSharePercentage;
        }

        public void setId(int id) {
                this.id = id;
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public String getOfferNotes() {
                return offerNotes;
        }

        public void setOfferNotes(String offerNotes) {
                this.offerNotes = offerNotes;
        }

        public String getTerms() {
                return terms;
        }

        public void setTerms(String terms) {
                this.terms = terms;
        }

        public OfferSchemeType getSchemeType() {
                return schemeType;
        }

        public void setSchemeType(OfferSchemeType schemeType) {
                this.schemeType = schemeType;
        }

        public double getSellinPercentage() {
                return sellinPercentage;
        }

        public void setSellinPercentage(double sellinPercentage) {
                this.sellinPercentage = sellinPercentage;
        }

        public AchievementType getTargetType() {
                return targetType;
        }

        public void setTargetType(AchievementType targetType) {
                this.targetType = targetType;
        }

        public String getItemCriteria() {
                return itemCriteria;
        }

        public void setItemCriteria(String itemCriteria) {
                this.itemCriteria = itemCriteria;
        }

        public String getPartnerCriteria() {
                return partnerCriteria;
        }

        public void setPartnerCriteria(String partnerCriteria) {
                this.partnerCriteria = partnerCriteria;
        }

        public LocalDateTime getStartDate() {
                return startDate;
        }

        public void setStartDate(LocalDateTime startDate) {
                this.startDate = startDate;
        }

        public LocalDateTime getEndDate() {
                return endDate;
        }

        public void setEndDate(LocalDateTime endDate) {
                this.endDate = endDate;
        }

        public LocalDateTime getCreatedTimestamp() {
                return createdTimestamp;
        }

        public void setCreatedTimestamp(LocalDateTime createdTimestamp) {
                this.createdTimestamp = createdTimestamp;
        }

        public boolean isActive() {
                return active;
        }

        public void setActive(boolean active) {
                this.active = active;
        }

}