40 lines
1.2 KiB
Dart
Executable File
40 lines
1.2 KiB
Dart
Executable File
// lib/models/user_profile.dart
|
|
import 'package:cloud_firestore/cloud_firestore.dart'; // Import necessário para Timestamp
|
|
|
|
class UserProfile {
|
|
final String uid;
|
|
final String email;
|
|
final String username;
|
|
final DateTime createdAt; // Pode adicionar mais campos conforme necessário
|
|
|
|
UserProfile({
|
|
required this.uid,
|
|
required this.email,
|
|
required this.username,
|
|
required this.createdAt,
|
|
});
|
|
|
|
// Converte um documento do Firestore (Map) para um objeto UserProfile
|
|
// Este método é usado quando você LÊ dados do Firestore.
|
|
factory UserProfile.fromFirestore(Map<String, dynamic> map) {
|
|
return UserProfile(
|
|
uid: map['uid'] as String,
|
|
email: map['email'] as String,
|
|
username: map['username'] as String,
|
|
// Converte Timestamp do Firestore para DateTime do Dart
|
|
createdAt: (map['createdAt'] as Timestamp).toDate(),
|
|
);
|
|
}
|
|
|
|
// Converte um objeto UserProfile para um Map (útil para escrever no Firestore)
|
|
// Este método é usado quando você GRAVA dados no Firestore.
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'uid': uid,
|
|
'email': email,
|
|
'username': username,
|
|
// O Firestore automaticamente converte DateTime para Timestamp
|
|
'createdAt': createdAt,
|
|
};
|
|
}
|
|
} |