69 lines
2.7 KiB
Dart
69 lines
2.7 KiB
Dart
// Immutable adatosztály — az eszköz összes statikus adata.
|
|
// A DeviceIdentityService tölti be egyszer induláskor.
|
|
|
|
class DeviceInfoModel {
|
|
// ── Azonosítók ────────────────────────────────────────────────────
|
|
|
|
/// Android rendszerszintű egyedi azonosító.
|
|
/// Reinstall után megmarad, factory reset után változik.
|
|
final String deviceId;
|
|
|
|
/// App-példány UUID — FlutterSecureStorage-ban tárolva.
|
|
/// Reinstall után új értéket kap.
|
|
final String appInstanceId;
|
|
|
|
// ── Hardver ───────────────────────────────────────────────────────
|
|
|
|
final String manufacturer; // "Samsung"
|
|
final String model; // "Galaxy Tab S9 Ultra"
|
|
final String brand; // "samsung"
|
|
|
|
// ── Rendszer ──────────────────────────────────────────────────────
|
|
|
|
/// Felhasználó által adott eszköznév (pl. "Pista telefonja").
|
|
/// A Settings.Global.DEVICE_NAME értéke — ez az alapértelmezett label.
|
|
final String systemDeviceName;
|
|
|
|
final String osVersion; // "14"
|
|
final int sdkInt; // 34
|
|
final String securityPatch; // "2024-06-01"
|
|
|
|
// ── App ───────────────────────────────────────────────────────────
|
|
|
|
final String appVersion; // "1.0.0"
|
|
final String buildNumber; // "15"
|
|
|
|
const DeviceInfoModel({
|
|
required this.deviceId,
|
|
required this.appInstanceId,
|
|
required this.manufacturer,
|
|
required this.model,
|
|
required this.brand,
|
|
required this.systemDeviceName,
|
|
required this.osVersion,
|
|
required this.sdkInt,
|
|
required this.securityPatch,
|
|
required this.appVersion,
|
|
required this.buildNumber,
|
|
});
|
|
|
|
// ── Supabase regisztrációs map ────────────────────────────────────
|
|
|
|
Map<String, dynamic> toRegistrationMap({required String label}) => {
|
|
'device_id': deviceId,
|
|
'app_instance_id': appInstanceId,
|
|
'label': label,
|
|
'manufacturer': manufacturer,
|
|
'model': model,
|
|
'os_version': osVersion,
|
|
'sdk_int': sdkInt,
|
|
'security_patch': securityPatch,
|
|
'app_version': '$appVersion+$buildNumber',
|
|
'last_seen': DateTime.now().toIso8601String(),
|
|
};
|
|
|
|
@override
|
|
String toString() =>
|
|
'DeviceInfo($manufacturer $model, Android $osVersion, app $appVersion)';
|
|
}
|