Subversion Repositories SmartDukaan

Rev

Rev 27918 | Rev 29707 | 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 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 (activationBrands == null) {
                        if (other.activationBrands != null)
                                return false;
                } else if (!activationBrands.equals(other.activationBrands))
                        return false;
                if (active != other.active)
                        return false;
                if (Double.doubleToLongBits(brandSharePercentage) != Double.doubleToLongBits(other.brandSharePercentage))
                        return false;
                if (createdTimestamp == null) {
                        if (other.createdTimestamp != null)
                                return false;
                } else if (!createdTimestamp.equals(other.createdTimestamp))
                        return false;
                if (endDate == null) {
                        if (other.endDate != null)
                                return false;
                } else if (!endDate.equals(other.endDate))
                        return false;
                if (id != other.id)
                        return false;
                if (incrementalTarget != other.incrementalTarget)
                        return false;
                if (itemCriteria == null) {
                        if (other.itemCriteria != null)
                                return false;
                } else if (!itemCriteria.equals(other.itemCriteria))
                        return false;
                if (itemCriteriaString == null) {
                        if (other.itemCriteriaString != null)
                                return false;
                } else if (!itemCriteriaString.equals(other.itemCriteriaString))
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                if (offerNotes == null) {
                        if (other.offerNotes != null)
                                return false;
                } else if (!offerNotes.equals(other.offerNotes))
                        return false;
                if (partnerCriteria == null) {
                        if (other.partnerCriteria != null)
                                return false;
                } else if (!partnerCriteria.equals(other.partnerCriteria))
                        return false;
                if (payoutType != other.payoutType)
                        return false;
                if (schemeType != other.schemeType)
                        return false;
                if (Double.doubleToLongBits(sellinPercentage) != Double.doubleToLongBits(other.sellinPercentage))
                        return false;
                if (startDate == null) {
                        if (other.startDate != null)
                                return false;
                } else if (!startDate.equals(other.startDate))
                        return false;
                if (targetType != other.targetType)
                        return false;
                if (terms == null) {
                        if (other.terms != null)
                                return false;
                } else if (!terms.equals(other.terms))
                        return false;
                return true;
        }

    @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((activationBrands == null) ? 0 : activationBrands.hashCode());
                result = prime * result + (active ? 1231 : 1237);
                long temp;
                temp = Double.doubleToLongBits(brandSharePercentage);
                result = prime * result + (int) (temp ^ (temp >>> 32));
                result = prime * result + ((createdTimestamp == null) ? 0 : createdTimestamp.hashCode());
                result = prime * result + ((endDate == null) ? 0 : endDate.hashCode());
                result = prime * result + id;
                result = prime * result + (incrementalTarget ? 1231 : 1237);
                result = prime * result + ((itemCriteria == null) ? 0 : itemCriteria.hashCode());
                result = prime * result + ((itemCriteriaString == null) ? 0 : itemCriteriaString.hashCode());
                result = prime * result + ((name == null) ? 0 : name.hashCode());
                result = prime * result + ((offerNotes == null) ? 0 : offerNotes.hashCode());
                result = prime * result + ((partnerCriteria == null) ? 0 : partnerCriteria.hashCode());
                result = prime * result + ((payoutType == null) ? 0 : payoutType.hashCode());
                result = prime * result + ((schemeType == null) ? 0 : schemeType.hashCode());
                temp = Double.doubleToLongBits(sellinPercentage);
                result = prime * result + (int) (temp ^ (temp >>> 32));
                result = prime * result + ((startDate == null) ? 0 : startDate.hashCode());
                result = prime * result + ((targetType == null) ? 0 : targetType.hashCode());
                result = prime * result + ((terms == null) ? 0 : terms.hashCode());
                return result;
        }

    @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;
    }

}