ponshu-room-lite/lib/providers/gemini_provider.dart

20 lines
903 B
Dart
Raw Normal View History

import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../services/gemini_service.dart';
/// GeminiService のシングルトンプロバイダー
///
/// アプリ全体で同一インスタンスを共有し、依存関係の注入を明示化する。
/// レート制限の状態_lastApiCallTimeは GeminiService の static フィールドの
/// ため、Provider を経由しなくても共有される。しかし Provider を通じて注入する
/// ことで「誰が GeminiService を使うか」を追跡可能にし、将来の static 除去時に
/// 安全にリファクタリングできる設計を維持する。
///
/// 使用例:
/// ```dart
/// final geminiService = ref.read(geminiServiceProvider);
/// final result = await geminiService.analyzeSakeLabel(paths);
/// ```
final geminiServiceProvider = Provider<GeminiService>((ref) {
return GeminiService();
});