/*
 * Copyright (c) 2020 WildFireChat. All rights reserved.
 */

import MediaMessageContent from "./mediaMessageContent";
import MessageContentMediaType from "./messageContentMediaType";
import MessageContentType from "./messageContentType";

export default class VideoMessageContent extends MediaMessageContent {
  // base64 encoded
  thumbnail;
  duration;

  constructor(fileOrLocalPath, remotePath, thumbnail, duration = 0) {
    super(MessageContentType.Video, MessageContentMediaType.Video, fileOrLocalPath, remotePath);
    this.thumbnail = thumbnail;
    this.duration = duration;
  }

  digest() {
    return "[视频]";
  }

  encode() {
    let payload = super.encode();
    payload.binaryContent = this.thumbnail;
    let obj = {
      d: this.duration,
      duration: this.duration,
    };
    payload.content = JSON.stringify(obj);
    payload.mediaType = MessageContentMediaType.Video;
    return payload;
  }

  decode(payload) {
    super.decode(payload);
    this.thumbnail = payload.binaryContent;
    if (payload.content) {
      let obj = JSON.parse(payload.content);
      this.duration = obj.d;
      if (this.duration === undefined) {
        this.duration = obj.duration;
      }
    }
  }
}
