import {JsonObject, JsonProperty} from "json2typescript";

import {Ticket} from "../../../entity/ticket";

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

@JsonObject('ResolvedTicketSerialized')
export class ResolvedTicketSerialized extends TicketSerialized {

  @JsonProperty('messages', [MessageSerialized])
  messages: MessageSerialized[] = undefined;

  public static async createResolvedFromObj(ticket: Ticket): Promise<ResolvedTicketSerialized> {
    const inst = (await this.createFromObj(ticket) as ResolvedTicketSerialized);
    inst.messages = await Promise.all(
      (await ticket.messages).map(m => MessageSerialized.createFromObj(m))
    );
    console.log('serialied shiet', inst);
    return inst;
  }

}
