import { pullFromCache } from '~/cache/api/pullFromCache';
import { userLinkedObject } from './userLinkedObject';

export const channelMemberLinkedObject = (
  channelMember: Amity.Membership<'channel'>,
): Amity.Membership<'channel'> => {
  const getUser = (): Amity.User | undefined => {
    const cacheKey = ['user', 'get', channelMember.userId];
    const internalUser = pullFromCache<Amity.InternalUser>(cacheKey)?.data;

    return internalUser ? userLinkedObject(internalUser) : undefined;
  };

  return {
    ...channelMember,
    get user() {
      return getUser();
    },
  };
};
