package com.caliverse.admin.domain.datacomponent;
import com.caliverse.admin.domain.entity.metadata.MetaClothTypeData;
import com.caliverse.admin.domain.entity.metadata.MetaItemData;
import com.caliverse.admin.domain.entity.metadata.MetaQuestData;
import com.caliverse.admin.domain.entity.metadata.MetaTextStringData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.stereotype.Component;

import java.util.List;

@Slf4j
@Component
@EnableCaching(proxyTargetClass = true)
public class MetaDataHandler_bak {

    @Autowired private MetaDataFileLoader metadataFileLoader;

    /**
     * text에 대한 명칭 정보 캐싱
     * @param text
     * @return 명칭(String)
     */
//    @Cacheable(cacheNames = "admintool:metaTextStringData", key = "#p0")
//    public String getTextStringData(String text) {
//        log.info("getTextStringData text: {}", text);
//        MetaTextStringData data = metadataFileLoader.getName(text);
//        log.info("getTextStringData data: {}", data);
//        return data == null ? "" : data.getKor();
//    }
//
//    /**
//     * 아이템에 대한 이름 정보 캐싱
//     * @param itemId
//     * @return 아이템 명칭(String)
//     */
//    @Cacheable(cacheNames = "admintool:metaItemNameData", key = "#p0", unless = "#result == null")
//    public String getMetaItemNameData(int itemId) {
//        MetaItemData item = metadataFileLoader.getMetaItem(itemId);
//        log.info("getMetaItemNameData data: {}", item);
//        return item == null ? "" : item.getName();
//    }
//
//    /**
//     * 아이템에 대한 타입 정보 캐싱
//     * @param itemId
//     * @return 아이템 타입(String)
//     */
//    @Cacheable(cacheNames = "admintool:metaItemLargeTypeData", key = "#p0", unless = "#result == null")
//    public String getMetaItemLargeTypeData(int itemId) {
//        MetaItemData item = metadataFileLoader.getMetaItem(itemId);
//        return item == null ? "" : item.getLargeType();
//    }
//
//    /**
//     * 의상 슬롯타입 정보 캐싱
//     * @param metaId
//     * @return 의상 슬롯타입(String)
//     */
//    @Cacheable(cacheNames = "admintool:metaClothSlotTypeData", key = "#p0", unless = "#result == null")
//    public String getMetaClothSlotTypeData(int metaId) {
//        MetaClothTypeData clothType = metadataFileLoader.getMetaClothType(metaId);
//        return clothType == null ? "" : clothType.getEquipSlotType();
//    }
//
//    /**
//     * 의상 타입 정보 캐싱
//     * @param metaId
//     * @return 의상 타입(String)
//     */
//    @Cacheable(cacheNames = "admintool:metaClothSmallTypeData", key = "#p0", unless = "#result == null", sync = true)
//    public String getMetaClothSmallTypeData(int metaId) {
//        log.info("getMetaClothSmallTypeData metaId: {}", metaId);
//        MetaClothTypeData clothType = metadataFileLoader.getMetaClothType(metaId);
//        log.info("getMetaClothSmallTypeData data: {}", clothType);
//        return clothType == null ? "" : clothType.getSmallType();
//    }
//
//    /**
//     * 퀘스트 정보
//     * @param questId
//     * @return 퀘스트 정보(List)
//     */
//    public List<MetaQuestData> getMetaQuestData(int questId) {
//        return metadataFileLoader.getMetaQuests(questId);
//    }
    
}

