import 'package:dio/dio.dart';
import 'package:english_learning/core/services/dio_client.dart';
import 'package:english_learning/features/home/models/completed_topics_model.dart';

class CompletedTopicsRepository {
  final DioClient _dioClient;

  CompletedTopicsRepository(this._dioClient);

  Future<List<CompletedTopic>> getCompletedTopics(String token) async {
    try {
      final response = await _dioClient.getCompletedTopics(token);

      // Tambahkan pengecekan status code dan payload
      if (response.statusCode == 200) {
        // Cek apakah payload null atau bukan list
        if (response.data['payload'] == null) {
          return []; // Kembalikan list kosong jika payload null
        }

        // Pastikan payload adalah list
        final dynamic payloadData = response.data['payload'];

        if (payloadData is List) {
          return payloadData
              .map((data) => CompletedTopic.fromJson(data))
              .toList();
        } else {
          return []; // Kembalikan list kosong jika payload bukan list
        }
      } else {
        // Tangani status code selain 200
        return [];
      }
    } on DioException catch (e) {
      // Log error jika perlu
      print('Network error: ${e.message}');
      return []; // Kembalikan list kosong untuk error jaringan
    } catch (e) {
      // Log error tidak terduga
      print('Unexpected error: $e');
      return []; // Kembalikan list kosong untuk error lainnya
    }
  }
}
