MessageTemplateQueryServiceImpl.java
package com.deveagles.be15_deveagles_be.features.messages.query.service.impl;
import com.deveagles.be15_deveagles_be.common.dto.PagedResult;
import com.deveagles.be15_deveagles_be.features.messages.command.application.dto.response.MessageTemplateResponse;
import com.deveagles.be15_deveagles_be.features.messages.command.domain.aggregate.MessageTemplate;
import com.deveagles.be15_deveagles_be.features.messages.query.repository.MessageTemplateQueryRepository;
import com.deveagles.be15_deveagles_be.features.messages.query.service.MessageTemplateQueryService;
import com.deveagles.be15_deveagles_be.features.shops.command.application.service.ShopCommandService;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class MessageTemplateQueryServiceImpl implements MessageTemplateQueryService {
private final ShopCommandService shopCommandService;
private final MessageTemplateQueryRepository messageTemplateQueryRepository;
@Override
public PagedResult<MessageTemplateResponse> findAll(Long shopId, Pageable pageable) {
shopCommandService.validateShopExists(shopId);
Page<MessageTemplate> page = messageTemplateQueryRepository.findAllByShopId(shopId, pageable);
Page<MessageTemplateResponse> mapped = page.map(MessageTemplateResponse::from);
return PagedResult.from(mapped); // ✅ 변경 포인트
}
@Override
public MessageTemplateResponse findOne(Long shopId, Long templateId) {
shopCommandService.validateShopExists(shopId);
return messageTemplateQueryRepository
.findByIdAndNotDeleted(templateId)
.map(MessageTemplateResponse::from)
.orElseThrow(() -> new RuntimeException("템플릿이 존재하지 않습니다."));
}
}