Files
CityCards_Customer_Flutter/lib/localPreference/local_preference.dart
2026-01-21 19:02:23 +05:30

94 lines
2.0 KiB
Dart

import 'package:sqflite/sqflite.dart';
import 'local_database.dart';
class LocalPreference {
static Future<void> setSelectedCityId(int value) async {
final db = await LocalDatabase().database;
await db.insert(
'selected_city',
{
'id': 1,
'city_id': value,
},
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
static Future<int> 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<void> 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<int> 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<bool> isFirstTimeUser() async {
final page = await getOnboardingPage();
return page < 3;
}
/// Move to next onboarding page
static Future<void> 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<void> resetOnboarding() async {
await updateOnboardingPage(0);
}
}