import {JsonObject, JsonProperty} from "json2typescript";

import {Message} from "../../../entity/message";

import {AttachmentSerialized} from "./attachment.serialized";
import {MessageSerialized} from "./message.serialized";
import {TicketSerialized} from "./ticket.serialized";

@JsonObject('ResolvedMessageSerialized')
export class ResolvedMessageSerialized extends MessageSerialized {

  @JsonProperty('ticket', TicketSerialized)
  ticket: TicketSerialized;

  public static async createResolvedFromObj(message: Message): Promise<ResolvedMessageSerialized> {
    const inst = (await this.createFromObj(message) as ResolvedMessageSerialized);
    inst.ticket = await TicketSerialized.createFromObj(await message.ticket);
    return inst;
  }

}
