/*
 * This program was produced for the U.S. Agency for International Development. It was prepared by the USAID | DELIVER PROJECT, Task Order 4. It is part of a project which utilizes code originally licensed under the terms of the Mozilla Public License (MPL) v2 and therefore is licensed under MPL v2 or later.
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the Mozilla Public License as published by the Mozilla Foundation, either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public License for more details.
 *
 * You should have received a copy of the Mozilla Public License along with this program. If not, see http://www.mozilla.org/MPL/
 */

package org.openlmis.equipment.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.openlmis.core.domain.BaseModel;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper=false)
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.PROPERTY, property="equipmentTypeName",visible = true)
@JsonSubTypes({@JsonSubTypes.Type(value = ColdChainEquipment.class, name = "cold-chain-equipment"),
               @JsonSubTypes.Type(value = Equipment.class, name = "equipment"),
                @JsonSubTypes.Type(value = Equipment.class, name = "null")})
public class Equipment extends BaseModel{

  //Serialization type
  private String equipmentTypeName;

  private String name;

  private String code;

  private EquipmentType equipmentType;

  private Long equipmentTypeId;

  private String manufacturer;

  private String model;

  private EquipmentEnergyType energyType;

  private Long energyTypeId;


}

@@ -959,60 +959,8 @@
 n;%0A%0A
-import com.fasterxml.jackson.annotation.JsonIgnore;%0A
 impo
@@ -985,24 +985,24 @@
 onstructor;%0A
+
 import lombo
@@ -1347,90 +1347,11 @@
 Id.N
-AME, include=JsonTypeInfo.As.PROPERTY, property=%22equipmentTypeName%22,visible = true
+ONE
 )%0A@J
@@ -1418,39 +1418,8 @@
 lass
-, name = %22cold-chain-equipment%22
 ),%0A 
@@ -1478,209 +1478,53 @@
 lass
-, name = %22equipment%22),%0A                @JsonSubTypes.Type(value = Equipment.class, name = %22null%22)%7D)%0Apublic class Equipment extends BaseModel%7B%0A%0A  //Serialization type%0A  private String equipmentTypeName;
+)%7D)%0Apublic class Equipment extends BaseModel%7B
 %0A%0A  

Change Equipment class to use JSON w/o extra member