import { FileType } from '../types/file.type';
import { FileEventJson } from '@ucap-webmessenger/protocol-event';

export interface FileInfo {
  // 대화방SEQ
  roomSeq: string;
  // 이벤트SEQ
  eventSeq: number;
  // 파일SEQ
  seq: number;
  // 송신자SEQ
  senderSeq: number;
  // 파일타입
  type: FileType;
  // 파일이름
  name: string;
  // 파일URL
  url: string;
  // 파일크기(byte)
  size: number;
  // 전송일시
  sendDate: string;
  // 수신완료자수
  receivedUserCount: number;
  // 수신자수
  receiverCount: number;
  // 발신내용
  sentMessage: string;
  // 발신내용 For Json
  sentMessageJson?: FileEventJson;
}

export function isMedia(fileInfo: FileInfo): boolean {
  return (
    [FileType.Image, FileType.Sound, FileType.Video, FileType.Bundle].some(
      v => v === fileInfo.type
    ) || isSound(fileInfo)
  );
}

export function isSound(fileInfo: FileInfo): boolean {
  return -1 !== ['mp3'].indexOf(fileInfo.sentMessageJson.fileExt);
}