// Copyright 2016 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only

import type { MessageReceiptType } from './MessageReceipts';

// This function is necessary because the only thing we can guarantee will be unique is
//  three pieces of data: sender, deviceId, and timestamp.
// Because we don't care which device interacted with our message, we collapse this down
//  to: sender + timestamp.
// In some cases, modifiers are stored in the same map, so we also add the modifier type

type ModifierType = MessageReceiptType | 'readsync' | 'viewsync';

export function generateCacheKey({
  sender,
  timestamp,
  type,
}: {
  sender: string;
  timestamp: number;
  type: ModifierType;
}): string {
  return `cacheKey-${sender}-${timestamp}-${type}`;
}