 /********************************************************************************
 * Copyright (c) 2020 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0
 ********************************************************************************/
export class InternalPerson {

  public id: string = null;
  public contactId: string = null;
  public contactNote: string = null;
  public contactType: string = null;
  public department: string = null;
  public firstName: string = null;
  public lastName: string = null;
  public personType: string = null;
  public personTypeId: string = null;
  public salutationId: string = null;
  public salutationType: string = null;
  public syncNote: string = null;
  public isSyncError: boolean = null;
  public uid: string = null;
  public title: string = null;
  public userRef: string = null;

  public constructor(data: any = null) {
    Object.keys(data || {})
      .filter(property => this.hasOwnProperty(property))
      .forEach(property => (this[property] = data[property]));
  }

}
