checkIfExerciseChanged method

bool checkIfExerciseChanged({
  1. required String newName,
  2. required String newNameEn,
  3. required String newDescription,
  4. required String newDescriptionEn,
  5. required String newCategory,
  6. required String originalName,
  7. required String originalNameEn,
  8. required String originalDescription,
  9. required String originalDescriptionEn,
  10. required String originalCategory,
  11. required bool isVideoMarkedForDeletion,
  12. required File? pickedVideoFile,
  13. required String? uploadedVideoUrl,
  14. required String originalVideo,
})

Implementation

bool checkIfExerciseChanged({
  required String newName,
  required String newNameEn,
  required String newDescription,
  required String newDescriptionEn,
  required String newCategory,
  required String originalName,
  required String originalNameEn,
  required String originalDescription,
  required String originalDescriptionEn,
  required String originalCategory,
  required bool isVideoMarkedForDeletion,
  required File? pickedVideoFile,
  required String? uploadedVideoUrl,
  required String originalVideo,
}) {
  final hasVideo = !isVideoMarkedForDeletion &&
      (pickedVideoFile != null ||
          uploadedVideoUrl != null ||
          originalVideo.isNotEmpty);

  final isValid = newName.isNotEmpty &&
      newNameEn.isNotEmpty &&
      newDescriptionEn.isNotEmpty &&
      newDescription.isNotEmpty &&
      newCategory.isNotEmpty &&
      hasVideo;

  final hasAnyChanged = newName.trim() != originalName.trim() ||
      newNameEn.trim() != originalNameEn.trim() ||
      newDescription.trim() != originalDescription.trim() ||
      newDescriptionEn.trim() != originalDescriptionEn ||
      newCategory != originalCategory ||
      pickedVideoFile != null ||
      (uploadedVideoUrl != null && uploadedVideoUrl != originalVideo) ||
      isVideoMarkedForDeletion;

  return hasAnyChanged && isValid;
}