export type SlackSender =
  | 'dan'
  | 'austin'
  | 'brandon'
  | 'lucas'
  | 'r2c2'
  | 'zosia'
  | 'judd'
  | 'montaigne';

export interface SlackReaction {
  emoji: string;
  count: number;
}

export interface SlackMessage {
  id: number;
  text: string;
  sender: SlackSender;
  reactions?: SlackReaction[];
}

export interface SlackTimedEvent {
  type: 'message' | 'typing' | 'reaction' | 'pause';
  messageIndex?: number;
  reactionIndex?: number;
  typingSender?: SlackSender;
  startFrame: number;
  durationFrames: number;
}

export interface SenderConfig {
  name: string;
  initials: string;
  avatarColor: string;
  isApp: boolean;
  avatarPhoto?: string;
}

// Avatar imports
import danAvatar from './assets/avatars/dan.jpg';
import austinAvatar from './assets/avatars/austin.jpg';
import brandonAvatar from './assets/avatars/brandon.jpg';
import lucasAvatar from './assets/avatars/lucas.jpg';
import r2c2Avatar from './assets/avatars/r2c2.png';
import zosiaAvatar from './assets/avatars/zosia.png';
import juddAvatar from './assets/avatars/judd.jpg';
import montaigneAvatar from './assets/avatars/montaigne.jpg';

export const SENDER_CONFIGS: Record<SlackSender, SenderConfig> = {
  dan: {
    name: 'Dan Shipper',
    initials: 'DS',
    avatarColor: '#E8A045',
    isApp: false,
    avatarPhoto: danAvatar,
  },
  austin: {
    name: 'Austin Tedesco',
    initials: 'AT',
    avatarColor: '#7B68EE',
    isApp: false,
    avatarPhoto: austinAvatar,
  },
  brandon: {
    name: 'Brandon',
    initials: 'B',
    avatarColor: '#2BAC76',
    isApp: false,
    avatarPhoto: brandonAvatar,
  },
  lucas: {
    name: 'Lucas Crespo',
    initials: 'LC',
    avatarColor: '#E01E5A',
    isApp: false,
    avatarPhoto: lucasAvatar,
  },
  r2c2: {
    name: 'R2-C2',
    initials: 'ð¦',
    avatarColor: '#1A3A5C',
    isApp: true,
    avatarPhoto: r2c2Avatar,
  },
  zosia: {
    name: 'Zosia',
    initials: 'Z',
    avatarColor: '#4A3728',
    isApp: true,
    avatarPhoto: zosiaAvatar,
  },
  judd: {
    name: 'Judd',
    initials: 'J',
    avatarColor: '#3B1F5E',
    isApp: true,
    avatarPhoto: juddAvatar,
  },
  montaigne: {
    name: 'Montaigne',
    initials: 'M',
    avatarColor: '#1A3A2A',
    isApp: true,
    avatarPhoto: montaigneAvatar,
  },
};
