createChamber method

  1. @override
Future<void> createChamber()
override

Implementation

@override
Future<void> createChamber() async {
  AppConfig.logger.d("Start ${newChamberNameController.text} and ${newChamberDescController.text}");

  try {
    errorMsg.value = '';
    if((isPublicNewChamber.value && newChamberNameController.text.isNotEmpty && newChamberDescController.text.isNotEmpty)
        || (!isPublicNewChamber.value && newChamberNameController.text.isNotEmpty)) {
      NeomChamber newChamber = NeomChamber.createBasic(newChamberNameController.text, newChamberDescController.text);

      // --- LOGICA BINAURAL ---
      if (baseFreqController.text.isNotEmpty && binauralBeatController.text.isNotEmpty) {
        double base = double.parse(baseFreqController.text);
        double beat = double.parse(binauralBeatController.text);

        // Asumiendo que has agregado estos campos a tu modelo NeomChamber
        // Si no existen en el modelo, deberás agregarlos en domain/model/neom/chamber.dart
        newChamber.chamberPresets?.first.mainFrequency?.frequency = base;
        newChamber.chamberPresets?.first.binauralFrequency?.frequency = beat;

        // newChamber.binauralBeat = beat;
        // newChamber.isBinauralUpper = isBinauralUpper.value;

        // Opcional: Guardar la segunda frecuencia calculada directamente
        // newChamber. = isBinauralUpper.value ? (base + beat) : (base - beat);
      }

      newChamber.ownerId = ownerId;
      newChamber.ownerName = ownerName;
      newChamber.ownerType = ownerType;
      String newItemlistId = "";

      if (profile.position?.latitude != 0.0) {
        newChamber.position = profile.position!;
      }

      newChamber.public = isPublicNewChamber.value;
      newItemlistId = await chamberRepository.insert(newChamber);


      AppConfig.logger.i("Empty NeomChamber created successfully for profile ${newChamber.ownerId}");
      newChamber.id = newItemlistId;

      if(newItemlistId.isNotEmpty){
        chambers[newItemlistId] = newChamber;
        AppConfig.logger.t("Itemlists $chambers");
        clearNewChamber();
        AppUtilities.showSnackBar(
            title: GeneratorTranslationConstants.chamberPrefs.tr,
            message: GeneratorTranslationConstants.chamberCreated.tr
        );
      } else {
        AppConfig.logger.d("Something happens trying to insert chamber");
      }
    } else {
      AppConfig.logger.d(MessageTranslationConstants.pleaseFillItemlistInfo.tr);
      errorMsg.value = newChamberNameController.text.isEmpty ? MessageTranslationConstants.pleaseAddName
          : MessageTranslationConstants.pleaseAddDescription;

      AppUtilities.showSnackBar(
        title: CommonTranslationConstants.addNewItemlist.tr,
        message: MessageTranslationConstants.pleaseFillItemlistInfo.tr,
      );
    }
  } catch (e, st) {
    NeomErrorLogger.recordError(e, st, module: 'neom_generator', operation: 'createChamber');
  }

  update([AppPageIdConstants.chamber]);
}