import { IRWCv4AnswerComponent, IRWCv4Message, } from "../../types/v4";

class RWCv4Message implements IRWCv4Message {
  message = '';
  messageText = '';
  answerComponent: IRWCv4AnswerComponent = {};
  medias: Array<any> = [];
  sendMessage = true;
  waitForAnswer = false;
  allowMedia = false;
  useFiles = true;
  waitForFiles = false;
  validation: Array<any> = [];
  
  constructor({ message, answerComponent, medias }) {
    this.message = message || '';
    this.messageText = message || '';
    
    if (Array.isArray(medias)) {
      this.medias = medias;
    }

    if (answerComponent) {
      this.answerComponent = answerComponent;
      this.sendMessage = answerComponent.sendMessage;
      this.waitForAnswer = answerComponent.waitForAnswer;
      this.allowMedia = answerComponent.allowMedia || this.allowMedia;
      this.useFiles = answerComponent.useFiles || this.useFiles;
      this.waitForFiles = answerComponent.waitForFiles || this.waitForFiles;
    } else {
      this.waitForAnswer = false;
    }
  }
}

export {
  RWCv4Message
};