getTicketChatMessages method

Future<Map<String, dynamic>> getTicketChatMessages({
  1. required String ticketID,
})

Fetch chat messages for a specific ticket

Implementation

Future<Map<String, dynamic>> getTicketChatMessages({
  required String ticketID,
}) async {
  const query = r'''
    query GetTicketChatMessages($ticketID: UUID!) {
      ticketChatMessages(ticketID: $ticketID) {
        success
        message
        chatMessages {
          id
          ticketID
          content
          senderID
          senderName
          receiverID
          receiverName
          isMine
          isRead
          createdAt
        }
      }
    }
  ''';

  final variables = {
    'ticketID': ticketID,
  };

  print('Fetching chat messages for ticket: $ticketID');

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

    if (response != null) {
      print('✅ Chat messages fetched: ${response['chatMessages']?.length ?? 0} messages');
      return response;
    }

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