deleteBabyBeatAssociation method
Implementation
Future<void> deleteBabyBeatAssociation(String documentId) async {
try {
final doctorId = widget.doctor!.documentId!;
final doc = await databases.getDocument(
databaseId: AppConstants.appwriteDatabaseId,
collectionId: AppConstants.userCollectionId,
documentId: doctorId,
);
final updated = Map<String, dynamic>.from(doc.data);
updated['babyBeatAssociation'].remove(documentId);
await databases.updateDocument(
databaseId: AppConstants.appwriteDatabaseId,
collectionId: AppConstants.userCollectionId,
documentId: doctorId,
data: {'babyBeatAssociation': updated['babyBeatAssociation']},
);
// Repeat reverse removal
final orgDoc = await databases.getDocument(
databaseId: AppConstants.appwriteDatabaseId,
collectionId: AppConstants.userCollectionId,
documentId: documentId,
);
final orgData = Map<String, dynamic>.from(orgDoc.data);
orgData['babyBeatAssociation']?.remove(doctorId);
await databases.updateDocument(
databaseId: AppConstants.appwriteDatabaseId,
collectionId: AppConstants.userCollectionId,
documentId: documentId,
data: {'babyBeatAssociation': orgData['babyBeatAssociation']},
);
setState(() {
widget.doctor?.babyBeatAssociation!.remove(documentId);
});
} catch (e) {
debugPrint('Delete error: $e');
}
}