// CONTOH PENGGUNAAN FCM SERVICE // File ini hanya untuk referensi, tidak perlu diimport ke app import 'package:apskel_pos_flutter_v2/common/service/fcm_service.dart'; import 'package:apskel_pos_flutter_v2/injection.dart'; /// Contoh 1: Ambil FCM token Future exampleGetToken() async { final fcmService = getIt(); final token = await fcmService.getToken(); print('FCM Token: $token'); // Kirim token ke server untuk push notification // await apiClient.sendTokenToServer(token); } /// Contoh 2: Subscribe ke topic Future exampleSubscribeToTopic() async { final fcmService = getIt(); // Subscribe ke topic "all_users" await fcmService.subscribeToTopic('all_users'); // Subscribe ke topic berdasarkan outlet_id await fcmService.subscribeToTopic('outlet_123'); } /// Contoh 3: Unsubscribe dari topic Future exampleUnsubscribeFromTopic() async { final fcmService = getIt(); await fcmService.unsubscribeFromTopic('outlet_123'); } /// Contoh 4: Gunakan di BLoC /// /// class NotificationBloc extends Bloc { /// final FcmService _fcmService; /// /// NotificationBloc(this._fcmService) : super(NotificationInitial()) { /// on(_onGetFcmToken); /// on(_onSubscribeToTopic); /// } /// /// Future _onGetFcmToken( /// GetFcmToken event, /// Emitter emit, /// ) async { /// final token = await _fcmService.getToken(); /// emit(NotificationTokenLoaded(token)); /// } /// /// Future _onSubscribeToTopic( /// SubscribeToTopic event, /// Emitter emit, /// ) async { /// await _fcmService.subscribeToTopic(event.topic); /// emit(NotificationTopicSubscribed(event.topic)); /// } /// } /// Contoh 5: Gunakan di Repository /// /// @LazySingleton(as: IAuthRepository) /// class AuthRepository implements IAuthRepository { /// final FcmService _fcmService; /// final ApiClient _apiClient; /// /// AuthRepository(this._fcmService, this._apiClient); /// /// @override /// Future> login(String email, String password) async { /// try { /// final response = await _apiClient.login(email, password); /// /// // Kirim FCM token ke server setelah login berhasil /// final fcmToken = await _fcmService.getToken(); /// if (fcmToken != null) { /// await _apiClient.updateFcmToken(fcmToken); /// } /// /// return Right(response); /// } catch (e) { /// return Left(ServerFailure(e.toString())); /// } /// } /// }