import 'package:sqflite/sqflite.dart'; import 'local_database.dart'; class LocalPreference { static Future setSelectedCityId(int value) async { final db = await LocalDatabase().database; await db.insert( 'selected_city', { 'id': 1, 'city_id': value, }, conflictAlgorithm: ConflictAlgorithm.replace, ); } static Future getSelectedCityId() async { final db = await LocalDatabase().database; final result = await db.query( 'selected_city', where: 'id = ?', whereArgs: [1], ); if (result.isNotEmpty) { return result.first['city_id'] as int; } return 1; } /// Insert default onboarding row (call once in splash) static Future initOnboarding() async { final db = await LocalDatabase().database; final result = await db.query('onboarding_state'); if (result.isEmpty) { await db.insert( 'onboarding_state', { 'id': 1, 'is_first_time': 1, // true 'page': 0, }, ); } } /// Get onboarding page static Future getOnboardingPage() async { final db = await LocalDatabase().database; final result = await db.query( 'onboarding_state', where: 'id = ?', whereArgs: [1], ); if (result.isNotEmpty) { return result.first['page'] as int; } return 0; } /// Get isFirstTime value static Future isFirstTimeUser() async { final page = await getOnboardingPage(); return page < 3; } /// Move to next onboarding page static Future updateOnboardingPage(int page) async { final db = await LocalDatabase().database; await db.update( 'onboarding_state', { 'page': page, 'is_first_time': page < 3 ? 1 : 0, }, where: 'id = ?', whereArgs: [1], ); } /// Reset onboarding (for logout / testing) static Future resetOnboarding() async { await updateOnboardingPage(0); } }