export const chatQueryKeys = {
  searchUsers: (token: string, search: string) => ['searchUsers', token, search] as const,
  getChatsList: (token: string, archive: 0 | 1) => ['getChatsList', token, archive] as const,
  getChatWith: (
    token: string,
    uid: number,
    no_of_messages: number,
    previous_than_message_id: number
  ) => ['getChatWith', token, uid, no_of_messages, previous_than_message_id] as const,
  sendMessage: () => ['sendMessage'] as const,
  messagesReceived: () => ['messagesReceived'] as const,
  messagesRead: () => ['messagesRead'] as const,
  reactToMessage: () => ['reactToMessage'] as const,
  deleteMessage: () => ['deleteMessage'] as const,
  setPin: () => ['setPin'] as const,
  setArchive: () => ['setArchive'] as const,
  setBlock: () => ['setBlock'] as const,
  setMute: () => ['setMute'] as const,
  deleteChat: () => ['deleteChat'] as const,
  unreactToMessage: () => ['unreactToMessage'] as const,
  getBlocked: (token: string) => ['getBlocked', token] as const,
  getUnreadMessagesCount: (token: string) => ['getUnreadMessagesCount', token] as const,
  reportConversation: () => ['reportConversation'] as const,
  createGroup: () => ['createGroup'] as const,
  getGroupChat: (
    token: string,
    group_token: string,
    no_of_messages: number,
    previous_than_message_id: number
  ) => ['getChatWith', token, group_token, no_of_messages, previous_than_message_id] as const,
  sendGroupMessage: () => ['sendGroupMessage'] as const,
  groupMessagesReceived: () => ['groupMessagesReceived'] as const,
  groupMessagesRead: () => ['groupMessagesRead'] as const,
  reactToGroupMessage: () => ['reactToGroupMessage'] as const,
  unreactToGroupMessage: () => ['unreactToGroupMessage'] as const,
  deleteGroupMessage: () => ['deleteGroupMessage'] as const,
  setPinForGroup: () => ['setPinForGroup'] as const,
  setArchiveForGroup: () => ['setArchiveForGroup'] as const,
  setMuteForGroup: () => ['setMuteForGroup'] as const,
  leaveGroup: () => ['leaveGroup'] as const,
  addToGroup: () => ['addToGroup'] as const,
  addToGroupAsAdmin: () => ['addToGroupAsAdmin'] as const,
  setGroupAdmin: () => ['setGroupAdmin'] as const,
  removeFromGroup: () => ['removeFromGroup'] as const,
  getGroupSettings: (token: string, group_token: string) =>
    ['getGroupSettings', token, group_token] as const,
  getGroupMembers: (token: string, group_token: string) =>
    ['getGroupMembers', token, group_token] as const,
  updateGroupSettings: () => ['updateGroupSettings'] as const,
  getGroupMessageStatus: (token: string, group_token: string, message_id: number) =>
    ['getGroupMessageStatus', token, group_token, message_id] as const,
  removeGroupFromList: () => ['removeGroupFromList'] as const,
  canCreateGroup: (token: string) => ['canCreateGroup', token] as const,
  getPinnedGroup: (token: string, group_token: string) =>
    ['getPinnedGroup', token, group_token] as const,
  setPinGroupMessage: () => ['setPinGroupMessage'] as const,
  editGroupMessage: () => ['editGroupMessage'] as const,
  editMessage: () => ['editMessage'] as const,
  canSendMessage: (token: string, to_uid: number) => ['canSendMessage', token, to_uid] as const
};
