66import com .deliveranything .domain .product .product .dto .ProductSearchRequest ;
77import com .deliveranything .domain .product .product .dto .ProductUpdateRequest ;
88import com .deliveranything .domain .product .product .entity .Product ;
9+ import com .deliveranything .domain .product .product .event .ProductKeywordsChangedEvent ;
910import com .deliveranything .domain .product .product .repository .ProductRepository ;
1011import com .deliveranything .domain .store .store .entity .Store ;
1112import com .deliveranything .domain .store .store .service .StoreService ;
1213import lombok .RequiredArgsConstructor ;
14+ import org .springframework .context .ApplicationEventPublisher ;
1315import org .springframework .data .domain .Slice ;
1416import org .springframework .stereotype .Service ;
1517import org .springframework .transaction .annotation .Transactional ;
@@ -21,6 +23,7 @@ public class ProductService {
2123 private final ProductRepository productRepository ;
2224 private final StoreService storeService ;
2325 private final KeywordGenerationService keywordGenerationService ;
26+ private final ApplicationEventPublisher eventPublisher ;
2427
2528 @ Transactional
2629 public ProductResponse createProduct (Long storeId , ProductCreateRequest request ) {
@@ -46,6 +49,10 @@ public void deleteProduct(Long storeId, Long productId) {
4649 Product product = productRepository .getById (productId );
4750 product .validateStore (storeId );
4851 productRepository .delete (product );
52+
53+ eventPublisher .publishEvent (new ProductKeywordsChangedEvent (
54+ product .getStore ().getId (), product .getId ()
55+ ));
4956 }
5057
5158 @ Transactional
0 commit comments