41 lines
1004 B
Dart
41 lines
1004 B
Dart
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<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'x': xValue,
|
|
'y': yValue,
|
|
'datetime': datetime.toIso8601String(),
|
|
'remainingSeconds': expiresAt.difference(DateTime.now()).inSeconds,
|
|
};
|
|
}
|
|
|
|
factory Geoposition.fromMap(Map<String, dynamic> 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,
|
|
);
|
|
}
|
|
} |