deleteBabyBeatAssociation method

Future<void> deleteBabyBeatAssociation(
  1. String documentId
)

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');
  }
}