// Get RewardList
    List <RewardInfo> GetPackageInfos(uint id, EPackageRewardType selectType = EPackageRewardType.None, DataPackageShop shop = null)
    {
        List <RewardInfo> infos   = new List <RewardInfo>();
        DataPackage       package = DataPackage.GetByID(id);

        for (int i = 0; i < package.GetREWARD_TYPECount(); i++)
        {
            if (selectType != EPackageRewardType.None && selectType != (EPackageRewardType)package.GetPRICE_TYPE(i))
            {
                continue;
            }

            RewardInfo info = new RewardInfo();
            info.type  = (EGoodsType)package.GetREWARD_TYPE(i);
            info.value = package.GetREWARD_VALUE(i);

            infos.Add(info);
        }

        if (shop != null && selectType == EPackageRewardType.Bonus)
        {
            RewardInfo bonus = ShopHelper.GetMonthlyBonus(shop);
            if (bonus != null)
            {
                RewardInfo searchInfo = infos.Find(x => x.type == bonus.type);
                if (searchInfo != null) // 같은 타입이면 갯수증가
                {
                    searchInfo.AddCount(bonus.GetCount());
                }
                else // 다른 타입이면 리스트 추가
                {
                    infos.Add(bonus);
                }
            }
        }

        return(infos);
    }