Subversion Repositories SmartDukaan

Rev

Rev 34431 | Rev 34516 | 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 javax.persistence.*;
import java.time.LocalDateTime;

@Entity
@Table(name = "catalog.customer_offers")

@NamedQueries({
                @NamedQuery(name = "CustomerOffer.getOfferItemsByBrand", query = "select new com.spice.profitmandi.service.pricecircular.PriceCircularItemModel("
                                + " i.id, i.catalogItemId, cast(sum(coi.schemePayout - coi.dealerPayout) as long),coi.offerType)"
                                + " from CustomerOfferItem coi join Item i on coi.catalogId = i.catalogItemId"
                                + " join CustomerOffer co on co.id=coi.customerOfferId where "
                                + " :date between coi.startDate and coi.endDate and "
                                + " :dateTime between co.startDate and co.endDate" + " and i.brand in :brands  group by i.id"),

                @NamedQuery(name = "CustomerOffer.getUpgradeOfferItemsByBrand", query = "select new com.spice.profitmandi.service.pricecircular.PriceCircularItemModel("
                                + " i.id, i.catalogItemId, cast(max(coi.schemePayout) as long),coi.offerType)"
                                + " from CustomerOfferItem coi join Item i on coi.catalogId = i.catalogItemId"
                                + " join CustomerOffer co on co.id=coi.customerOfferId where "
                                + " :date between coi.startDate and coi.endDate and "
                                + " :dateTime between co.startDate and co.endDate" + " and i.brand in :brands  group by i.catalogItemId,coi.offerType"),

                @NamedQuery(name = "CustomerOffer.getMaxOfferItemsByBrand", query = "select new com.spice.profitmandi.service.pricecircular.PriceCircularItemModel("
                                + " i.id, i.catalogItemId, cast(max(coi.schemePayout) as long),coi.offerType)"
                                + " from CustomerOfferItem coi join Item i on coi.catalogId = i.catalogItemId"
                                + " join CustomerOffer co on co.id=coi.customerOfferId where "
                                + " :date between coi.startDate and coi.endDate and "
                                + " :dateTime between co.startDate and co.endDate" + " and i.brand in :brands  group by i.id"),
})
public class CustomerOffer {

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

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

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

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

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

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

        @Column(name = "updated_timestamp")
        private LocalDateTime updatedTimestamp;

        @Transient
        private String partnerCriteriaString;

        public int getId() {
                return id;
        }

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

        public String getOfferName() {
                return offerName;
        }

        public void setOfferName(String offerName) {
                this.offerName = offerName;
        }

        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 LocalDateTime getUpdatedTimestamp() {
                return updatedTimestamp;
        }

        public void setUpdatedTimestamp(LocalDateTime updatedTimestamp) {
                this.updatedTimestamp = updatedTimestamp;
        }

        public String getPartnerCriteriaString() {
                return partnerCriteriaString;
        }

        public void setPartnerCriteriaString(String partnerCriteriaString) {
                this.partnerCriteriaString = partnerCriteriaString;
        }

        @Override
        public String toString() {
                return "CustomerOffer [id=" + id + ", offerName=" + offerName + ", startDate=" + startDate + ", endDate="
                                + endDate + ", partnerCriteria=" + partnerCriteria + ", createdTimestamp=" + createdTimestamp
                                + ", updatedTimestamp=" + updatedTimestamp + ", partnerCriteriaString=" + partnerCriteriaString + "]";
        }

}