import 'package:cloud_firestore/cloud_firestore.dart'; class UserModel { final String id; final String email; final String name; final String role; final String? deviceId; final DateTime? createdAt; UserModel({ required this.id, required this.email, required this.name, required this.role, this.deviceId, this.createdAt, }); Map toFirestore() { return { 'email': email, 'name': name, 'role': role, if (deviceId != null) 'device_id': deviceId, 'created_at': createdAt ?? FieldValue.serverTimestamp(), }; } factory UserModel.fromFirestore(DocumentSnapshot doc) { final data = doc.data() as Map; return UserModel( id: doc.id, email: data['email'] ?? '', name: data['name'] ?? '', role: data['role'] ?? '', deviceId: data['device_id'], createdAt: (data['created_at'] as Timestamp?)?.toDate(), ); } UserModel copyWith({ String? id, String? email, String? name, String? role, String? deviceId, DateTime? createdAt, }) { return UserModel( id: id ?? this.id, email: email ?? this.email, name: name ?? this.name, role: role ?? this.role, deviceId: deviceId ?? this.deviceId, createdAt: createdAt ?? this.createdAt, ); } }