sendTicketChatMessage method

Future<Map<String, dynamic>> sendTicketChatMessage({
  1. required String ticketID,
  2. required String receiverID,
  3. required String content,
})

Send a chat message for a specific ticket/job

Implementation

Future<Map<String, dynamic>> sendTicketChatMessage({
  required String ticketID,
  required String receiverID,
  required String content,
}) async {
  const mutation = r'''
    mutation SendTicketChatMessage($input: SendChatMessageInput!) {
      sendTicketChatMessage(input: $input) {
        success
        message
        chatMessage {
          id
          ticketID
          content
          senderID
          senderName
          receiverID
          receiverName
          isMine
          isRead
          createdAt
        }
      }
    }
  ''';

  final variables = {
    'input': {
      'ticketID': ticketID,
      'receiverID': receiverID,
      'content': content,
    }
  };

  print('Sending chat message: $variables');

  try {
    final result = await _api.graphql(mutation, variables);
    final response = result['sendTicketChatMessage'];

    if (response != null) {
      print('✅ Chat message sent successfully');
      return response;
    }

    return {
      'success': false,
      'message': 'Unknown error - no response data'
    };
  } catch (e) {
    print('❌ Error sending chat message: $e');
    return {
      'success': false,
      'message': e.toString()
    };
  }
}