Subversion Repositories SmartDukaan

Rev

Rev 31860 | Rev 32868 | 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 com.spice.profitmandi.dao.enumuration.catalog.AchievementType;
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;

@Entity
@Table(name = "catalog.offer")
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 = "base_criteria", nullable = false)
        private boolean baseCriteia;

        @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 = "booster")
        private boolean booster = false;


        @Column(name = "discount")
        private boolean discount = false;

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

        @Override
        public boolean equals(Object o) {
                if (this == o) return true;
                if (o == null || getClass() != o.getClass()) return false;
                Offer offer = (Offer) o;
                return id == offer.id && Double.compare(offer.brandSharePercentage, brandSharePercentage) == 0 && baseCriteia == offer.baseCriteia && Double.compare(offer.sellinPercentage, sellinPercentage) == 0 && booster == offer.booster && active == offer.active && alreadyActive == offer.alreadyActive && Objects.equals(name, offer.name) && Objects.equals(offerNotes, offer.offerNotes) && Objects.equals(terms, offer.terms) && schemeType == offer.schemeType && targetType == offer.targetType && payoutType == offer.payoutType && Objects.equals(activationBrands, offer.activationBrands) && Objects.equals(itemCriteria, offer.itemCriteria) && Objects.equals(partnerCriteria, offer.partnerCriteria) && Objects.equals(startDate, offer.startDate) && Objects.equals(endDate, offer.endDate) && Objects.equals(createdTimestamp, offer.createdTimestamp) && Objects.equals(processedTimestamp, offer.processedTimestamp) && Objects.equals(itemCriteriaString, offer.itemCriteriaString);
        }

        @Override
        public int hashCode() {
                return Objects.hash(id, brandSharePercentage, name, offerNotes, terms, schemeType, baseCriteia, sellinPercentage, targetType, payoutType, activationBrands, itemCriteria, partnerCriteria, startDate, endDate, createdTimestamp, booster, active, processedTimestamp, alreadyActive, itemCriteriaString);
        }

        public LocalDateTime getProcessedTimestamp() {
                return processedTimestamp;
        }

        public void setProcessedTimestamp(LocalDateTime processedTimestamp) {
                this.processedTimestamp = processedTimestamp;
        }

        @Column(name = "processed_timestamp")
        private LocalDateTime processedTimestamp;

        @Transient
        private boolean alreadyActive;


        public boolean isAlreadyActive() {
                return alreadyActive;
        }

        public void setAlreadyActive(boolean alreadyActive) {
                this.alreadyActive = alreadyActive;
        }

        public AchievementType getPayoutType() {
                return payoutType;
        }

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

        public boolean isBaseCriteia() {
                return baseCriteia;
        }

        public void setBaseCriteia(boolean baseCriteia) {
                this.baseCriteia = baseCriteia;
        }

        public boolean isBooster() {
                return booster;
        }

        public void setBooster(boolean booster) {
                this.booster = booster;
        }

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

        @Override
        public String toString() {
                return "Offer{" +
                                "id=" + id +
                                ", brandSharePercentage=" + brandSharePercentage +
                                ", name='" + name + '\'' +
                                ", offerNotes='" + offerNotes + '\'' +
                                ", terms='" + terms + '\'' +
                                ", schemeType=" + schemeType +
                                ", baseCriteia=" + baseCriteia +
                                ", sellinPercentage=" + sellinPercentage +
                                ", targetType=" + targetType +
                                ", payoutType=" + payoutType +
                                ", activationBrands='" + activationBrands + '\'' +
                                ", itemCriteria='" + itemCriteria + '\'' +
                                ", partnerCriteria='" + partnerCriteria + '\'' +
                                ", startDate=" + startDate +
                                ", endDate=" + endDate +
                                ", createdTimestamp=" + createdTimestamp +
                                ", booster=" + booster +
                                ", discount=" + discount +
                                ", active=" + active +
                                ", processedTimestamp=" + processedTimestamp +
                                ", alreadyActive=" + alreadyActive +
                                ", itemCriteriaString='" + itemCriteriaString + '\'' +
                                '}';
        }

        public boolean isDiscount() {
                return discount;
        }

        public void setDiscount(boolean discount) {
                this.discount = discount;
        }
}