import 'dart:async';
import 'dart:developer';

import 'package:flutter/material.dart';
import 'package:initial_folder/models/qna_model.dart';
import 'package:initial_folder/services/qna_service.dart';
import 'package:rxdart/rxdart.dart';

enum ResultState { loading, noData, hasData, error }

enum ResultStateLike { loading, error }

class QnaProvider with ChangeNotifier {
  final _service = QnaService();
  StreamController<QnaModel> streamController = BehaviorSubject();
  String _message = '';
  String get message => _message;
  ResultState? _state;
  ResultState? get state => _state;
  QnaModel? _qnaModel;
  QnaModel? get result => _qnaModel;
  set qnaModel(QnaModel? qnaModel) {
    _qnaModel = qnaModel;
    notifyListeners();
  }

  Stream<QnaModel> get qnaStream {
    return streamController.stream;
  }

  //Get QNA
  Future<void> getQna(String idCourse) async {
    try {
      QnaModel qnaModel = await _service.getMyQna(idCourse);
      if (qnaModel.error == true && qnaModel.status == 404) {
        // Jika respons adalah 404 (tidak ditemukan), tangani objek dummy di sini
        // Misalnya, menampilkan pesan kepada pengguna bahwa tidak ada data yang ditemukan
        // Atau menampilkan UI yang sesuai
        print('masuk rerror dsiinii');
        streamController.add(qnaModel);
      } else {
        // Jika respons adalah 200 (berhasil), tambahkan data ke dalam stream
        streamController.add(qnaModel);
      }
    } catch (error) {
      // Tangani jenis error lain jika diperlukan
      rethrow;
    }
  }
}
