class Geoposition { final int id; final int userId; final double xValue; final double yValue; final DateTime datetime; final Duration lifetime; final DateTime expiresAt; Geoposition({ required this.id, required this.userId, required this.xValue, required this.yValue, required this.datetime, required this.lifetime, required this.expiresAt, }); Map toJson() { return { 'id': id, 'x': xValue, 'y': yValue, 'datetime': datetime.toIso8601String(), 'remainingSeconds': expiresAt.difference(DateTime.now()).inSeconds, }; } factory Geoposition.fromMap(Map map) { return Geoposition( id: map['id'], userId: map['user_id'], xValue: map['x_value'].toDouble(), yValue: map['y_value'].toDouble(), datetime: map['datetime'] as DateTime, lifetime: Duration(seconds: map['lifetime']), expiresAt: map['expires_at'] as DateTime, ); } }