import 'dart:developer'; import 'package:hub/shared/helpers/database/database_helper.dart'; import 'package:sqflite/sqflite.dart'; enum InactiveModuleKey { residents, vehicles, openedVisits, } enum ActiveModuleKey { messages, liberations, reservations, access, orders, completeSchedule, providerSchedule, deliverySchedule, fastPass, } extension InactiveModuleKeyExtension on InactiveModuleKey { String get value { switch (this) { case InactiveModuleKey.residents: return 'FRE-HUB-RESIDENTS'; case InactiveModuleKey.vehicles: return 'FRE-HUB-VEHICLES'; case InactiveModuleKey.openedVisits: return 'FRE-HUB-OPENED-VISITS'; default: return ''; } } } extension ActiveModuleKeyExtension on ActiveModuleKey { String get value { switch (this) { case ActiveModuleKey.messages: return 'FRE-HUB-MESSAGES'; case ActiveModuleKey.liberations: return 'FRE-HUB-LIBERATIONS'; case ActiveModuleKey.reservations: return 'FRE-HUB-RESERVATIONS'; case ActiveModuleKey.access: return 'FRE-HUB-ACCESS'; case ActiveModuleKey.orders: return 'FRE-HUB-ORDERS'; case ActiveModuleKey.completeSchedule: return 'FRE-HUB-COMPLETE-SCHEDULE'; case ActiveModuleKey.providerSchedule: return 'FRE-HUB-AGE-PROV-PRESTADOR'; case ActiveModuleKey.deliverySchedule: return 'FRE-HUB-AGE-PROV-DELIVERY'; case ActiveModuleKey.fastPass: return 'FRE-HUB-FASTPASS'; default: return ''; } } } enum Module { messages, liberations, reservations, access, openedVisits, vehicles, residents, pets, orders, completeSchedule, providerSchedule, deliverySchedule, fastPass, qrCode, settings, logout, } extension LicenseKeyExtension on Module { String get value { switch (this) { case Module.messages: return 'FRE-HUB-MESSAGES'; case Module.liberations: return 'FRE-HUB-LIBERATIONS'; case Module.reservations: return 'FRE-HUB-RESERVATIONS'; case Module.access: return 'FRE-HUB-ACCESS'; case Module.openedVisits: return 'FRE-HUB-OPENED-VISITS'; case Module.vehicles: return 'FRE-HUB-VEHICLES'; case Module.residents: return 'FRE-HUB-RESIDENTS'; case Module.pets: return 'FRE-HUB-PETS'; case Module.orders: return 'FRE-HUB-ORDERS'; case Module.completeSchedule: return 'FRE-HUB-COMPLETE-SCHEDULE'; case Module.providerSchedule: return 'FRE-HUB-AGE-PROV-PRESTADOR'; case Module.deliverySchedule: return 'FRE-HUB-AGE-PROV-DELIVERY'; case Module.fastPass: return 'FRE-HUB-FASTPASS'; default: return ''; } } String get route { switch (this) { case Module.messages: return '/messageHistoryPage'; case Module.liberations: return '/liberationHistory'; case Module.reservations: return '/reservation'; case Module.access: return '/acessHistoryPage'; case Module.openedVisits: return '/visitsOnTheProperty'; case Module.vehicles: return '/vehiclesOnThePropertyPage'; case Module.residents: return '/peopleOnThePropertyPage'; case Module.pets: return '/petsPage'; case Module.orders: return '/packageOrder'; case Module.completeSchedule: return '/scheduleCompleteVisitPage'; case Module.providerSchedule: return '/provisionalSchedule'; case Module.deliverySchedule: return '/deliverySchedule'; case Module.fastPass: return '/fastPassPage'; default: return ''; } } } class LicenseHelper { static final LicenseHelper _instance = LicenseHelper._internal(); factory LicenseHelper() => _instance; LicenseHelper._internal(); static const String tableLicense = 'license'; static String get createTableQuery => ''' CREATE TABLE $tableLicense ( key TEXT UNIQUE, display TEXT, expirationDate TEXT, startDate TEXT, quantity TEXT ); '''; Future init() async { await DatabaseStorage.instance.init(); } static Future insertLicenseFoo( final List key, final String display) async { for (var element in key) { DatabaseStorage.database.insert( tableLicense, { 'key': element, 'display': display, 'expirationDate': '', 'startDate': '', 'quantity': '', }, conflictAlgorithm: ConflictAlgorithm.ignore, ); } } Future g(String key) async { var response = await DatabaseStorage.database.query(tableLicense, where: 'key = ?', whereArgs: [key], columns: ['display']); if (response.isEmpty) { return null; } return response.first['display'].toString(); } Future s(String key, T value) async { log('setLicense($key, $value)'); value as Map; await DatabaseStorage.database.insert( tableLicense, { 'key': key, 'display': value['display'], 'expirationDate': value['expirationDate'], 'startDate': value['startDate'], 'quantity': value['quantity'], }, conflictAlgorithm: ConflictAlgorithm.replace); } Future d(String key) async { await DatabaseStorage.database .delete(tableLicense, where: 'key = ?', whereArgs: [key]); } Future c() async { await DatabaseStorage.database.delete(tableLicense); } }