Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed

package com.spice.profitmandi.dao.event;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;

/**
 * Publishes TagListing change events for real-time Solr updates.
 * Inject this service in controllers that modify TagListing entities.
 */
@Component
public class TagListingEventPublisher {

    private static final Logger logger = LoggerFactory.getLogger(TagListingEventPublisher.class);

    @Autowired
    private ApplicationEventPublisher eventPublisher;

    public void publishPriceChange(int itemId, int catalogId) {
        logger.debug("Publishing price change event for itemId={}, catalogId={}", itemId, catalogId);
        eventPublisher.publishEvent(new TagListingChangedEvent(this, itemId, catalogId,
                TagListingChangedEvent.ChangeType.PRICE_UPDATED));
    }

    public void publishStatusChange(int itemId, int catalogId) {
        logger.debug("Publishing status change event for itemId={}, catalogId={}", itemId, catalogId);
        eventPublisher.publishEvent(new TagListingChangedEvent(this, itemId, catalogId,
                TagListingChangedEvent.ChangeType.STATUS_CHANGED));
    }

    public void publishCreated(int itemId, int catalogId) {
        logger.debug("Publishing created event for itemId={}, catalogId={}", itemId, catalogId);
        eventPublisher.publishEvent(new TagListingChangedEvent(this, itemId, catalogId,
                TagListingChangedEvent.ChangeType.CREATED));
    }

    public void publishDeleted(int itemId, int catalogId) {
        logger.debug("Publishing deleted event for itemId={}, catalogId={}", itemId, catalogId);
        eventPublisher.publishEvent(new TagListingChangedEvent(this, itemId, catalogId,
                TagListingChangedEvent.ChangeType.DELETED));
    }
}