cGPBNakruEarPsLo method

  1. @override
Future<void> cGPBNakruEarPsLo({
  1. required YIMEnum_ConversationType conversationType,
  2. required String conversationID,
  3. required List<String> messageIDs,
})
override

Implementation

@override
Future<void> cGPBNakruEarPsLo({
  required YIMEnum_ConversationType conversationType,
  required String conversationID,
  required List<String> messageIDs,
}) async {
  if (!OvtmToJxJungsSYZ.csuUedvgDStbzLNY.PscxCSwHobBJanUn()) return;
  Filter? filter;
  switch (conversationType) {
    case YIMEnum_ConversationType.P2P:
      filter = Filter.and([
        Filter.inList("id", messageIDs),
        Filter.or([
          Filter.and([Filter.equals("from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("to", conversationID)]),
          Filter.and([Filter.equals("to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("from", conversationID)]),
        ]),
        Filter.equals("conversationType", conversationType.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.Team:
      filter = Filter.and([
        Filter.inList("id", messageIDs),
        Filter.equals("to", conversationID),
        Filter.equals("conversationType", conversationType.rawValue),
      ]);
      break;
    default:
      break;
  }
  final isSuccess_delete = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.tKAbXalebZFRuOaW(
    _YIMTableName.Message,
    finder: Finder(
      filter: filter,
    ),
  );
  if (!isSuccess_delete) return;
  switch (conversationType) {
    case YIMEnum_ConversationType.P2P:
      filter = Filter.and([
        Filter.or([
          Filter.and([Filter.equals("from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("to", conversationID)]),
          Filter.and([Filter.equals("to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("from", conversationID)]),
        ]),
        Filter.equals("conversationType", conversationType.rawValue),
      ]);
      break;
    case YIMEnum_ConversationType.Team:
      filter = Filter.and([
        Filter.equals("to", conversationID),
        Filter.equals("conversationType", conversationType.rawValue),
      ]);
      break;
    default:
      break;
  }
  final count = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.jkvZnZIvvDSnHWwS(
    _YIMTableName.Message,
    filter: filter,
  );
  if (count == null) return;
  if (count > 0) {
    final isSuccess_updateLastMessage = await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.JomjSGPzMROqBXcU(conversationType, conversationID, unRead: _YIMEnum_ConversatypeUnRead.Zero);
    if (!isSuccess_updateLastMessage) return;
    ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
      OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.qHtpCvFDdZkdPuJV?.call();
    });
    Filter? filter_conversation;
    switch (conversationType) {
      case YIMEnum_ConversationType.P2P:
        filter_conversation = Filter.and([
          Filter.or([
            Filter.and([Filter.equals("lastMessage.from", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.to", conversationID)]),
            Filter.and([Filter.equals("lastMessage.to", ikkMDRSazNrwMPHX.iWAybCDcsQNMUprO), Filter.equals("lastMessage.from", conversationID)]),
          ]),
          Filter.equals("lastMessage.conversationType", conversationType.rawValue),
        ]);
        break;
      case YIMEnum_ConversationType.Team:
        filter_conversation = Filter.and([
          Filter.equals("lastMessage.to", conversationID),
          Filter.equals("lastMessage.conversationType", conversationType.rawValue),
        ]);
        break;
    }
    final needUpdateConversations = await ikkMDRSazNrwMPHX.IYbIKvvGPiKFZIPm.GblXLUqWqaAxkFQq<_YIMTable_Conversation>(
      _YIMTableName.Conversation,
      onModel: (map) => _YIMTable_Conversation.fromJson(map),
      finder: Finder(filter: filter_conversation),
    );
    if (needUpdateConversations == null) {
      return;
    }
    ikkMDRSazNrwMPHX.XpWvEzOtXSLTdmHl.BUkEgYSBqdKrdmOU(() {
      OvtmToJxJungsSYZ.PJdwSvwxRFOmibTX.pNEsHvSGgGaVaPdm?.call(needUpdateConversations.map((e) => YIMConversation(conversation: e)).toList());
    });
  } else {
    await OvtmToJxJungsSYZ.LlIozQNrAdyRMeRu.tKAbXalebZFRuOaW(conversationType: conversationType, conversationID: conversationID);
  }
}