wMubTEqkFbXrseOf method

  1. @override
Future<bool> wMubTEqkFbXrseOf(
  1. YIMEnum_ConversationType TMhjsByyUuXcscSR,
  2. String APZrxmPSOMdFqrhE, {
  3. HWeWyeCJyQtwlSNl uiHyFYalrgOKbWFH = HWeWyeCJyQtwlSNl.LYybvXEMeNKoyHfF,
})
override

Implementation

@override
Future<bool> wMubTEqkFbXrseOf(
  YIMEnum_ConversationType TMhjsByyUuXcscSR,
  String APZrxmPSOMdFqrhE, {
  HWeWyeCJyQtwlSNl uiHyFYalrgOKbWFH = HWeWyeCJyQtwlSNl.LYybvXEMeNKoyHfF,
}) async {
  Filter? CHHwGDvmOFaLjYfE;
  switch (TMhjsByyUuXcscSR) {
    case YIMEnum_ConversationType.P2P:
      CHHwGDvmOFaLjYfE = Filter.and([
        Filter.or([
          Filter.and([Filter.equals("from", LLTqoNwdULMbTCMh.IemXKsVNcGUWeUgJ), Filter.equals("to", APZrxmPSOMdFqrhE)]),
          Filter.and([Filter.equals("to", LLTqoNwdULMbTCMh.IemXKsVNcGUWeUgJ), Filter.equals("from", APZrxmPSOMdFqrhE)]),
        ]),
        Filter.equals("conversationType", TMhjsByyUuXcscSR.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.Team:
      CHHwGDvmOFaLjYfE = Filter.and([
        Filter.equals("to", APZrxmPSOMdFqrhE),
        Filter.equals("conversationType", TMhjsByyUuXcscSR.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.ChatRoom:
      return true;
  }
  final IvMCaaSVIWcQArzH = await LLTqoNwdULMbTCMh.fWmDEyWlYlSzIgZn.JHzMkZIpOnZbQRwO<_YIMTable_Message>(
    _YIMTableName.Message,
    KgQmNjCadrqeQjJE: (map) => _YIMTable_Message.fromJson(map),
    RaxVrYLTOIwElzzS: Finder(
      limit: 1,
      sortOrders: [SortOrder("time", false)],
      filter: CHHwGDvmOFaLjYfE,
    ),
  );
  if (IvMCaaSVIWcQArzH == null) return false;
  if (IvMCaaSVIWcQArzH.isEmpty) return false;
  Filter? RyDvVcXmnThgbKWY;
  switch (TMhjsByyUuXcscSR) {
    case YIMEnum_ConversationType.P2P:
      RyDvVcXmnThgbKWY = Filter.and([
        Filter.or([
          Filter.and([Filter.equals("lastMessage.from", LLTqoNwdULMbTCMh.IemXKsVNcGUWeUgJ), Filter.equals("lastMessage.to", APZrxmPSOMdFqrhE)]),
          Filter.and([Filter.equals("lastMessage.to", LLTqoNwdULMbTCMh.IemXKsVNcGUWeUgJ), Filter.equals("lastMessage.from", APZrxmPSOMdFqrhE)]),
        ]),
        Filter.equals("lastMessage.conversationType", TMhjsByyUuXcscSR.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.Team:
      RyDvVcXmnThgbKWY = Filter.and([
        Filter.equals("lastMessage.to", APZrxmPSOMdFqrhE),
        Filter.equals("lastMessage.conversationType", TMhjsByyUuXcscSR.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.ChatRoom:
      return true;
  }
  final ooUoKzshjHGgNnLX = await LLTqoNwdULMbTCMh.fWmDEyWlYlSzIgZn.UXWtntmCNgMmqtcQ<_YIMTable_Conversation>(
    _YIMTableName.Conversation,
    (snASIbbnhGihRLOr) {
      final tmmBlSfEBRBRYXTr = snASIbbnhGihRLOr ?? _YIMTable_Conversation();
      if (IvMCaaSVIWcQArzH.first.from != LLTqoNwdULMbTCMh.IemXKsVNcGUWeUgJ)
        switch (uiHyFYalrgOKbWFH) {
          case HWeWyeCJyQtwlSNl.odHTDFQDIWZrltfj:
            tmmBlSfEBRBRYXTr.unRead++;
            break;
          case HWeWyeCJyQtwlSNl.AMgIgIZTLWHSnzLl:
            if (tmmBlSfEBRBRYXTr.unRead > 0) tmmBlSfEBRBRYXTr.unRead--;
            break;
          case HWeWyeCJyQtwlSNl.iibmzSFBvlultFXg:
            tmmBlSfEBRBRYXTr.unRead = 0;
            break;
        }
      tmmBlSfEBRBRYXTr.lastMessage = IvMCaaSVIWcQArzH.first;
      return tmmBlSfEBRBRYXTr;
    },
    RaxVrYLTOIwElzzS: Finder(filter: RyDvVcXmnThgbKWY),
    KgQmNjCadrqeQjJE: (map) => _YIMTable_Conversation.fromJson(map),
  );
  if (!ooUoKzshjHGgNnLX) return false;
  return true;
}