import 'dart:convert';
import 'package:zhiying_comm/zhiying_comm.dart';

class GoodsDetailsPageRepository {




  /// 获取数据
  Future<List<Map<String, dynamic>>> fetchInitModData(final Map<String, dynamic> model) async{

    String provider = model['provider'];
    String goodId = model['good_id'];
    try {
      if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) {
        Logger.log('商品类型 = $provider, 商品ID = $goodId');
        var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET);
        if (NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {

          List<Map<String, dynamic>> _pageData = [];
          /// 合并数据
          List<dynamic> modLists = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'];
          for(int i = 0; i < modLists.length; i++){
             Map<String, dynamic> item = modLists[i];
             Map<String, dynamic> data = item['data'];
             Map<String, dynamic> style = jsonDecode(item['style']);

             Map<String, dynamic> baseData = {'provider': provider, 'good_id': goodId};
             style.addAll(baseData);

             if(!EmptyUtil.isEmpty(data)){
                style.addAll(data);
                item['data'] = jsonEncode(style);
                _pageData.add(item);
             }else{
               item['data'] = jsonEncode(style);
                _pageData.add(item);
             }
          }

          return _pageData;
        }
      }
    }catch(e){
      Logger.log(e);
    }
    return null;
  }


  ///【弃用】获取mod数据 把子mod数据塞在data中
  // Future<List<Map<String, dynamic>>> fetchModData(final Map<String, dynamic> model) async{
  //   String provider = model['provider'];
  //   String goodId = model['good_id'];
  //   try {
  //     if (!EmptyUtil.isEmpty(provider) && !EmptyUtil.isEmpty(goodId)) {
  //       Logger.log('商品类型 = $provider, 商品ID = $goodId');
  //       var result = await NetUtil.post('/api/v1/detail/$provider/$goodId', method: NetMethod.GET);
  //       if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
  //         for (int i = 0; i < _pageData.length; i++) {
  //            //result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i];
  //           Map<String, dynamic> resultData = result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]['mod_list'][i];
  //           Map<String, dynamic> data = jsonDecode(_pageData[i]['data']);
  //           if(!EmptyUtil.isEmpty(data)){
  //               data.addAll(resultData);
  //               _pageData[i]['data'] = jsonEncode(data);
  //           }else{
  //             _pageData[i]['data'] = (null != resultData && resultData.length > 0)  ? jsonEncode(resultData) : '';
  //           }
  //         }
  //         return _pageData;
  //       }
  //     }
  //   }catch(e){
  //     Logger.log(e);
  //   }
  //   return null;
  // }
  //
  // ///【弃用】初始化
  // Future<List<Map<String, dynamic>>> fetchInitData(Map<String, dynamic> model) async {
  //   int id = 13;
  //   var result = await NetUtil.post('/api/v1/mod', method: NetMethod.POST, params: {'ids': [id]});
  //   try {
  //     if(NetUtil.isSuccess(result) && !EmptyUtil.isEmpty(result[GlobalConfig.HTTP_RESPONSE_KEY_DATA])) {
  //       return _loadData(id, result[GlobalConfig.HTTP_RESPONSE_KEY_DATA]);
  //     }
  //   } catch (e) {
  //     Logger.log(e);
  //   }
  //   return null;
  // }
  //
  // ///【弃用】处理数据
  // List<Map<String, dynamic>> _loadData(int id, dynamic data) {
  //   String key = id.toString();
  //   Map<String, dynamic> json = Map<String, dynamic>.from(data);
  //   if (json.containsKey(key)) {
  //     List<dynamic> list = json[key];
  //     _pageData = list.map((item) {
  //       return Map<String, dynamic>.from(item);
  //     }).toList();
  //     return _pageData;
  //   }
  //   return null;
  // }

}
