import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../modeller/job.dart'; import '../servisler/ace_step/ace_step_istemci.dart'; import '../servisler/job_orkestratoru.dart'; import '../servisler/wangp/wangp_kopru_istemci.dart'; import '../servisler/wangp/wangp_olay.dart'; /// Singleton orchestrator erişim noktası. final jobOrkestratoruProvider = Provider((ref) { return JobOrkestratoru.ornek; }); /// Tüm jobların canlı listesi. final tumJoblarProvider = StreamProvider>((ref) { return JobOrkestratoru.ornek.tumJoblar(); }); /// Tek bir job için canlı stream. final jobAkisProvider = StreamProvider.family((ref, String jobId) { return JobOrkestratoru.ornek.jobAkisi(jobId); }); /// WanGP köprü sağlık durumu (manuel refresh için `ref.invalidate`). final wangpSaglikProvider = FutureProvider>((ref) async { return WangpKopruIstemci.ornek.saglikKontrol(); }); /// ACE-Step sağlık durumu. final aceSaglikProvider = FutureProvider((ref) async { return AceStepIstemci.ornek.sagliklimi(); }); /// Belirli bir köprü job_id için ham SSE event akışı (önizleme/log paneli). final wangpOlayAkisiProvider = StreamProvider.family((ref, String kopruJobId) { return WangpKopruIstemci.ornek.jobOlaylariniDinle(kopruJobId); });