52 lines
1.5 KiB
Dart
52 lines
1.5 KiB
Dart
import 'package:cloud_firestore/cloud_firestore.dart';
|
|
|
|
class History {
|
|
final DateTime tanggal;
|
|
final double berat;
|
|
final double tinggi;
|
|
final double bmi;
|
|
String user; // Menambahkan field user
|
|
|
|
History({
|
|
required this.tanggal,
|
|
required this.berat,
|
|
required this.tinggi,
|
|
required this.bmi,
|
|
required this.user, // Inisialisasi user
|
|
});
|
|
|
|
// Fungsi untuk mengonversi objek History menjadi Map
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'tanggal': tanggal.toIso8601String(),
|
|
'berat': berat,
|
|
'tinggi': tinggi,
|
|
'bmi': bmi,
|
|
'user': user, // Menambahkan field user ke map
|
|
};
|
|
}
|
|
|
|
// Fungsi untuk mengonversi Map menjadi objek History
|
|
factory History.fromMap(Map<String, dynamic> map) {
|
|
return History(
|
|
tanggal: DateTime.parse(map['tanggal']),
|
|
berat: map['berat'] as double,
|
|
tinggi: map['tinggi'] as double,
|
|
bmi: map['bmi'] as double,
|
|
user: map['user'] as String, // Mengambil data user dari map
|
|
);
|
|
}
|
|
|
|
// Fungsi untuk mengonversi data Firestore menjadi objek History
|
|
static History fromFirestore(QueryDocumentSnapshot<Map<String, dynamic>> doc) {
|
|
var data = doc.data();
|
|
return History(
|
|
tanggal: (data['timestamp'] as Timestamp).toDate(), // Mengonversi Timestamp ke DateTime
|
|
berat: data['berat'].toDouble(),
|
|
tinggi: data['tinggi'].toDouble(),
|
|
bmi: data['bmi'].toDouble(),
|
|
user: data['user'] ?? 'Unknown', // Menambahkan user dengan default 'Unknown'
|
|
);
|
|
}
|
|
}
|