abstract class BaseStorage { Future init(); Future set(String key, T value); Future get(String key); Future delete(String key); Future clearAll(); } enum Storage { secureStorage, sharedPreferences, databaseStorage, } enum SharedPreferencesKey { isFirstRun, } extension SharedPreferencesKeyExtension on SharedPreferencesKey { String get value { switch (this) { case SharedPreferencesKey.isFirstRun: return 'fre_isFirstRun'; default: return ''; } } } enum SecureStorageKey { isLogged, email, password, deviceType, token, accessPass, panicPass, fingerprintPass, haveLocal, deviceDescription, } extension SecureStorageKeyExtension on SecureStorageKey { String get value { switch (this) { case SecureStorageKey.isLogged: return 'fre_isLogged'; case SecureStorageKey.email: return 'fre_email'; case SecureStorageKey.password: return 'fre_passwd'; case SecureStorageKey.deviceType: return 'fre_deviceType'; case SecureStorageKey.token: return 'fre_token'; case SecureStorageKey.accessPass: return 'fre_accessPass'; case SecureStorageKey.panicPass: return 'fre_panicPass'; case SecureStorageKey.fingerprintPass: return 'fre_fingerprintPass'; case SecureStorageKey.haveLocal: return 'fre_have_local'; case SecureStorageKey.deviceDescription: return 'fre_deviceDescription'; default: return ''; } } } enum KeychainStorageKey { devUUID, userUUID, userDevUUID, status, userName, clientUUID, ownerUUID, clientName, petAmount, whatsapp, provisional, pets, local, notify, fingerprint, access, panic, person, requestOSNotification, isNewVersion, } extension KeychainStorageKeyExtension on KeychainStorageKey { String get value { switch (this) { case KeychainStorageKey.devUUID: return 'fre_devUUID'; case KeychainStorageKey.userUUID: return 'fre_userUUID'; case KeychainStorageKey.userDevUUID: return 'fre_userDevUUID'; case KeychainStorageKey.status: return 'fre_status'; case KeychainStorageKey.userName: return 'fre_userName'; case KeychainStorageKey.clientUUID: return 'fre_cliUUID'; case KeychainStorageKey.ownerUUID: return 'fre_ownerUUID'; case KeychainStorageKey.clientName: return 'fre_cliName'; case KeychainStorageKey.petAmount: return 'fre_petAmountRegister'; case KeychainStorageKey.whatsapp: return 'fre_whatsapp'; case KeychainStorageKey.provisional: return 'fre_provisional'; case KeychainStorageKey.pets: return 'fre_pets'; case KeychainStorageKey.local: return 'fre_local'; case KeychainStorageKey.notify: return 'fre_notify'; case KeychainStorageKey.fingerprint: return 'fre_fingerprint'; case KeychainStorageKey.access: return 'fre_access'; case KeychainStorageKey.panic: return 'fre_panic'; case KeychainStorageKey.person: return 'fre_person'; case KeychainStorageKey.requestOSNotification: return 'fre_requestOSnotification'; case KeychainStorageKey.isNewVersion: return 'fre_isNewVersion'; default: return ''; } } } enum InactiveLicenseKey { residents, vehicles, openedVisits, } enum ActiveLicenseKey { messages, liberations, reservations, access, orders, completeSchedule, providerSchedule, deliverySchedule, fastPass, } extension InactiveLicenseKeyExtension on InactiveLicenseKey { String get value { switch (this) { case InactiveLicenseKey.residents: return 'FRE-HUB-RESIDENTS'; case InactiveLicenseKey.vehicles: return 'FRE-HUB-VEHICLES'; case InactiveLicenseKey.openedVisits: return 'FRE-HUB-OPENED-VISITS'; default: return ''; } } } extension ActiveLicenseKeyExtension on ActiveLicenseKey { String get value { switch (this) { case ActiveLicenseKey.messages: return 'FRE-HUB-MESSAGES'; case ActiveLicenseKey.liberations: return 'FRE-HUB-LIBERATIONS'; case ActiveLicenseKey.reservations: return 'FRE-HUB-RESERVATIONS'; case ActiveLicenseKey.access: return 'FRE-HUB-ACCESS'; case ActiveLicenseKey.orders: return 'FRE-HUB-ORDERS'; case ActiveLicenseKey.completeSchedule: return 'FRE-HUB-COMPLETE-SCHEDULE'; case ActiveLicenseKey.providerSchedule: return 'FRE-HUB-AGE-PROV-PRESTADOR'; case ActiveLicenseKey.deliverySchedule: return 'FRE-HUB-AGE-PROV-DELIVERY'; case ActiveLicenseKey.fastPass: return 'FRE-HUB-FASTPASS'; default: return ''; } } } enum LicenseStorageKey { messages, liberations, reservations, access, openedVisits, vehicles, residents, pets, orders, completeSchedule, providerSchedule, deliverySchedule, fastPass, } extension LicenseKeyExtension on LicenseStorageKey { String get value { switch (this) { case LicenseStorageKey.messages: return 'FRE-HUB-MESSAGES'; case LicenseStorageKey.liberations: return 'FRE-HUB-LIBERATIONS'; case LicenseStorageKey.reservations: return 'FRE-HUB-RESERVATIONS'; case LicenseStorageKey.access: return 'FRE-HUB-ACCESS'; case LicenseStorageKey.openedVisits: return 'FRE-HUB-OPENED-VISITS'; case LicenseStorageKey.vehicles: return 'FRE-HUB-VEHICLES'; case LicenseStorageKey.residents: return 'FRE-HUB-RESIDENTS'; case LicenseStorageKey.pets: return 'FRE-HUB-PETS'; case LicenseStorageKey.orders: return 'FRE-HUB-ORDERS'; case LicenseStorageKey.completeSchedule: return 'FRE-HUB-COMPLETE-SCHEDULE'; case LicenseStorageKey.providerSchedule: return 'FRE-HUB-AGE-PROV-PRESTADOR'; case LicenseStorageKey.deliverySchedule: return 'FRE-HUB-AGE-PROV-DELIVERY'; case LicenseStorageKey.fastPass: return 'FRE-HUB-FASTPASS'; default: return ''; } } }