DummyEbookFactory.java

package qwerty.chaekit.global.init;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import qwerty.chaekit.domain.ebook.Ebook;
import qwerty.chaekit.domain.ebook.repository.EbookRepository;
import qwerty.chaekit.domain.member.publisher.PublisherProfile;
import qwerty.chaekit.global.init.dummy.DummyEbook;
import qwerty.chaekit.service.member.admin.AdminService;

@Slf4j
@Component
@RequiredArgsConstructor
public class DummyEbookFactory {
    private final EbookRepository ebookRepository;
    private final AdminService adminService;
    
    public void saveDummyEbooks() {
        saveDummyEbook(DummyEbook.ALICE);
        saveDummyEbook(DummyEbook.ROMEO_AND_JULIET);
        saveDummyEbook(DummyEbook.MOBY_D);
        saveDummyEbook(DummyEbook.CINDERELLA);
        saveDummyEbook(DummyEbook.FRANKENSTEIN);
    }

    private void saveDummyEbook(DummyEbook ebookData) {
        if (ebookRepository.existsByTitle(ebookData.getTitle())) {
            log.info("\"{}\"이 이미 존재합니다.", ebookData.getTitle());
            return;
        }
        Ebook ebook = toEbook(ebookData);
        ebookRepository.save(ebook);
        log.info("\"{}\"이 새로 생성되었습니다.", ebookData.getTitle());
    }

    private Ebook toEbook(DummyEbook ebookData) {
        return Ebook.builder()
                .title(ebookData.getTitle())
                .author(ebookData.getAuthor())
                .publisher(PublisherProfile.builder().id(2L).build())
                .description(ebookData.getDescription())
                .fileKey(ebookData.getFileKey())
                .coverImageKey(ebookData.getCoverImageKey())
                .size(ebookData.getSize())
                .price(ebookData.getPrice())
                .build();
    }
    
}