import { ControllerDeviceVO } from "../device/ControllerDeviceVO";
import { CastProtocol } from "./CastProtocol";
import { CastType } from "./CastType";

export class CastSessionVO {
    castSessionId: number;
    guid: string;
    displayCode: number;
    castType: CastType;
    castProtocol: CastProtocol;
    controllerDevice: ControllerDeviceVO;
  
    constructor() {
      this.castSessionId = -1;
      this.guid = "";
      this.displayCode = -1;
      this.castType = CastType.MIX_CAST;
      this.castProtocol = CastProtocol.HTTP;
      this.controllerDevice = new ControllerDeviceVO();
    }
  
    equals(o: any): boolean {
      return o instanceof CastSessionVO &&
        this.castSessionId === o.castSessionId &&
        this.displayCode === o.displayCode &&
        this.guid === o.guid &&
        this.castType === o.castType &&
        this.castProtocol === o.castProtocol &&
        this.controllerDevice.equals(o.controllerDevice);
    }
  
    toString(): string {
      return `CastSessionVO{` +
        `castSessionId=${this.castSessionId}, ` +
        `guid='${this.guid}', ` +
        `displayCode=${this.displayCode}, ` +
        `castType=${CastType[this.castType]}, ` +
        `castProtocol=${CastProtocol[this.castProtocol]}, ` +
        `castProtocol=${this.controllerDevice}` +
        `}`;
    }
  }