package com.foreverwin.mesnac.meapi.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author Philip
 * @since 2021-6-23
 */

@TableName("BOM_COMPONENT")

public class BomComponent extends Model<BomComponent> {

    private static final long serialVersionUID = 1L;

   @TableId(value = "HANDLE", type = IdType.INPUT)
   private String handle;
   @TableField("BOM_BO")
   private String bomBo;
   @TableField("COMPONENT_GBO")
   private String componentGbo;
   @TableField("SEQUENCE")
   private Long sequence;
   @TableField("ENABLED")
   private String enabled;
   @TableField("VALID_START")
   private LocalDateTime validStart;
   @TableField("VALID_END")
   private LocalDateTime validEnd;
   @TableField("USE_ITEM_DEFAULTS")
   private String useItemDefaults;
   @TableField("PRE_ASSEMBLED")
   private String preAssembled;
   @TableField("ASSY_DATA_TYPE_BO")
   private String assyDataTypeBo;
   @TableField("QTY")
   private Double qty;
   @TableField("TEST_PART")
   private String testPart;
   @TableField("BOM_TEMPLATE")
   private String bomTemplate;
   @TableField("DISASSEMBLE_OPERATION_BO")
   private String disassembleOperationBo;
   @TableField("CREATE_TRACKABLE_SFC")
   private String createTrackableSfc;
   @TableField("MAXIMUM_USAGE")
   private Long maximumUsage;
   @TableField("MAXIMUM_NC")
   private Long maximumNc;
   @TableField("ASSEMBLE_AS_REQ")
   private String assembleAsReq;
   @TableField("AUTO_CONSUME_KIT")
   private String autoConsumeKit;
   @TableField("CREATED_DATE_TIME")
   private LocalDateTime createdDateTime;
   @TableField("MODIFIED_DATE_TIME")
   private LocalDateTime modifiedDateTime;
   @TableField("BOM_COMPONENT_TYPE")
   private String bomComponentType;
   @TableField("PARENT_SEQUENCE")
   private Long parentSequence;
   @TableField("ERP_SEQUENCE")
   private Long erpSequence;
   @TableField("ORDER_ITEM_NUMBER")
   private String orderItemNumber;
   @TableField("ERP_CHANGE_NUMBER")
   private String erpChangeNumber;
   @TableField("IDENTIFIER")
   private String identifier;
   @TableField("STORAGE_LOCATION_BO")
   private String storageLocationBo;


   public String getHandle() {
      return handle;
   }

   public void setHandle(String handle) {
      this.handle = handle;
   }

   public String getBomBo() {
      return bomBo;
   }

   public void setBomBo(String bomBo) {
      this.bomBo = bomBo;
   }

   public String getComponentGbo() {
      return componentGbo;
   }

   public void setComponentGbo(String componentGbo) {
      this.componentGbo = componentGbo;
   }

   public Long getSequence() {
      return sequence;
   }

   public void setSequence(Long sequence) {
      this.sequence = sequence;
   }

   public String getEnabled() {
      return enabled;
   }

   public void setEnabled(String enabled) {
      this.enabled = enabled;
   }

   public LocalDateTime getValidStart() {
      return validStart;
   }

   public void setValidStart(LocalDateTime validStart) {
      this.validStart = validStart;
   }

   public LocalDateTime getValidEnd() {
      return validEnd;
   }

   public void setValidEnd(LocalDateTime validEnd) {
      this.validEnd = validEnd;
   }

   public String getUseItemDefaults() {
      return useItemDefaults;
   }

   public void setUseItemDefaults(String useItemDefaults) {
      this.useItemDefaults = useItemDefaults;
   }

   public String getPreAssembled() {
      return preAssembled;
   }

   public void setPreAssembled(String preAssembled) {
      this.preAssembled = preAssembled;
   }

   public String getAssyDataTypeBo() {
      return assyDataTypeBo;
   }

   public void setAssyDataTypeBo(String assyDataTypeBo) {
      this.assyDataTypeBo = assyDataTypeBo;
   }

   public Double getQty() {
      return qty;
   }

   public void setQty(Double qty) {
      this.qty = qty;
   }

   public String getTestPart() {
      return testPart;
   }

   public void setTestPart(String testPart) {
      this.testPart = testPart;
   }

   public String getBomTemplate() {
      return bomTemplate;
   }

   public void setBomTemplate(String bomTemplate) {
      this.bomTemplate = bomTemplate;
   }

   public String getDisassembleOperationBo() {
      return disassembleOperationBo;
   }

   public void setDisassembleOperationBo(String disassembleOperationBo) {
      this.disassembleOperationBo = disassembleOperationBo;
   }

   public String getCreateTrackableSfc() {
      return createTrackableSfc;
   }

   public void setCreateTrackableSfc(String createTrackableSfc) {
      this.createTrackableSfc = createTrackableSfc;
   }

   public Long getMaximumUsage() {
      return maximumUsage;
   }

   public void setMaximumUsage(Long maximumUsage) {
      this.maximumUsage = maximumUsage;
   }

   public Long getMaximumNc() {
      return maximumNc;
   }

   public void setMaximumNc(Long maximumNc) {
      this.maximumNc = maximumNc;
   }

   public String getAssembleAsReq() {
      return assembleAsReq;
   }

   public void setAssembleAsReq(String assembleAsReq) {
      this.assembleAsReq = assembleAsReq;
   }

   public String getAutoConsumeKit() {
      return autoConsumeKit;
   }

   public void setAutoConsumeKit(String autoConsumeKit) {
      this.autoConsumeKit = autoConsumeKit;
   }

   public LocalDateTime getCreatedDateTime() {
      return createdDateTime;
   }

   public void setCreatedDateTime(LocalDateTime createdDateTime) {
      this.createdDateTime = createdDateTime;
   }

   public LocalDateTime getModifiedDateTime() {
      return modifiedDateTime;
   }

   public void setModifiedDateTime(LocalDateTime modifiedDateTime) {
      this.modifiedDateTime = modifiedDateTime;
   }

   public String getBomComponentType() {
      return bomComponentType;
   }

   public void setBomComponentType(String bomComponentType) {
      this.bomComponentType = bomComponentType;
   }

   public Long getParentSequence() {
      return parentSequence;
   }

   public void setParentSequence(Long parentSequence) {
      this.parentSequence = parentSequence;
   }

   public Long getErpSequence() {
      return erpSequence;
   }

   public void setErpSequence(Long erpSequence) {
      this.erpSequence = erpSequence;
   }

   public String getOrderItemNumber() {
      return orderItemNumber;
   }

   public void setOrderItemNumber(String orderItemNumber) {
      this.orderItemNumber = orderItemNumber;
   }

   public String getErpChangeNumber() {
      return erpChangeNumber;
   }

   public void setErpChangeNumber(String erpChangeNumber) {
      this.erpChangeNumber = erpChangeNumber;
   }

   public String getIdentifier() {
      return identifier;
   }

   public void setIdentifier(String identifier) {
      this.identifier = identifier;
   }

   public String getStorageLocationBo() {
      return storageLocationBo;
   }

   public void setStorageLocationBo(String storageLocationBo) {
      this.storageLocationBo = storageLocationBo;
   }

   @Override
   protected Serializable pkVal() {
      return this.handle;
   }

   public static final String HANDLE = "HANDLE";

   public static final String BOM_BO = "BOM_BO";

   public static final String COMPONENT_GBO = "COMPONENT_GBO";

   public static final String SEQUENCE = "SEQUENCE";

   public static final String ENABLED = "ENABLED";

   public static final String VALID_START = "VALID_START";

   public static final String VALID_END = "VALID_END";

   public static final String USE_ITEM_DEFAULTS = "USE_ITEM_DEFAULTS";

   public static final String PRE_ASSEMBLED = "PRE_ASSEMBLED";

   public static final String ASSY_DATA_TYPE_BO = "ASSY_DATA_TYPE_BO";

   public static final String QTY = "QTY";

   public static final String TEST_PART = "TEST_PART";

   public static final String BOM_TEMPLATE = "BOM_TEMPLATE";

   public static final String DISASSEMBLE_OPERATION_BO = "DISASSEMBLE_OPERATION_BO";

   public static final String CREATE_TRACKABLE_SFC = "CREATE_TRACKABLE_SFC";

   public static final String MAXIMUM_USAGE = "MAXIMUM_USAGE";

   public static final String MAXIMUM_NC = "MAXIMUM_NC";

   public static final String ASSEMBLE_AS_REQ = "ASSEMBLE_AS_REQ";

   public static final String AUTO_CONSUME_KIT = "AUTO_CONSUME_KIT";

   public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME";

   public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME";

   public static final String BOM_COMPONENT_TYPE = "BOM_COMPONENT_TYPE";

   public static final String PARENT_SEQUENCE = "PARENT_SEQUENCE";

   public static final String ERP_SEQUENCE = "ERP_SEQUENCE";

   public static final String ORDER_ITEM_NUMBER = "ORDER_ITEM_NUMBER";

   public static final String ERP_CHANGE_NUMBER = "ERP_CHANGE_NUMBER";

   public static final String IDENTIFIER = "IDENTIFIER";

   public static final String STORAGE_LOCATION_BO = "STORAGE_LOCATION_BO";

   @Override
   public String toString() {
      return "BomComponent{" +
         "handle = " + handle +
         ", bomBo = " + bomBo +
         ", componentGbo = " + componentGbo +
         ", sequence = " + sequence +
         ", enabled = " + enabled +
         ", validStart = " + validStart +
         ", validEnd = " + validEnd +
         ", useItemDefaults = " + useItemDefaults +
         ", preAssembled = " + preAssembled +
         ", assyDataTypeBo = " + assyDataTypeBo +
         ", qty = " + qty +
         ", testPart = " + testPart +
         ", bomTemplate = " + bomTemplate +
         ", disassembleOperationBo = " + disassembleOperationBo +
         ", createTrackableSfc = " + createTrackableSfc +
         ", maximumUsage = " + maximumUsage +
         ", maximumNc = " + maximumNc +
         ", assembleAsReq = " + assembleAsReq +
         ", autoConsumeKit = " + autoConsumeKit +
         ", createdDateTime = " + createdDateTime +
         ", modifiedDateTime = " + modifiedDateTime +
         ", bomComponentType = " + bomComponentType +
         ", parentSequence = " + parentSequence +
         ", erpSequence = " + erpSequence +
         ", orderItemNumber = " + orderItemNumber +
         ", erpChangeNumber = " + erpChangeNumber +
         ", identifier = " + identifier +
         ", storageLocationBo = " + storageLocationBo +
         "}";
   }
}