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;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author Leon.L
 * @since 2021-06-27
 */

@TableName("BOM")
public class Bom extends Model<Bom> {

    private static final long serialVersionUID = 1L;

   @TableId(value = "HANDLE", type = IdType.INPUT)
   private String handle;
   @TableField("CHANGE_STAMP")
   private Long changeStamp;
   @TableField("SITE")
   private String site;
   @TableField("BOM")
   private String bom;
   @TableField("BOM_TYPE")
   private String bomType;
   @TableField("DESCRIPTION")
   private String description;
   @TableField("STATUS_BO")
   private String statusBo;
   @TableField("TMP_BOM")
   private String tmpBom;
   @TableField("COPIED_FROM_BOM_BO")
   private String copiedFromBomBo;
   @TableField("REVISION")
   private String revision;
   @TableField("CURRENT_REVISION")
   private String currentRevision;
   @TableField("BOM_TEMPLATE")
   private String bomTemplate;
   @TableField("HAS_BEEN_RELEASED")
   private String hasBeenReleased;
   @TableField("EFF_START_DATE")
   private LocalDateTime effStartDate;
   @TableField("EFF_END_DATE")
   private LocalDateTime effEndDate;
   @TableField("EFFECTIVITY_CONTROL")
   private String effectivityControl;
   @TableField("PREV_SITE")
   private String prevSite;
   @TableField("ORIGINAL_TRANSFER_KEY")
   private String originalTransferKey;
   @TableField("ERP_BILL_OF_MATERIAL")
   private String erpBillOfMaterial;
   @TableField("CREATED_DATE_TIME")
   private LocalDateTime createdDateTime;
   @TableField("MODIFIED_DATE_TIME")
   private LocalDateTime modifiedDateTime;
   @TableField("PARTITION_DATE")
   private LocalDateTime partitionDate;
   @TableField("MODEL")
   private String model;
   @TableField(exist = false)
   private List<BomComponent> bomComponentList;

   public List<BomComponent> getBomComponentList() {
      return bomComponentList;
   }

   public void setBomComponentList(List<BomComponent> bomComponentList) {
      this.bomComponentList = bomComponentList;
   }

   public String getHandle() {
      return handle;
   }

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

   public Long getChangeStamp() {
      return changeStamp;
   }

   public void setChangeStamp(Long changeStamp) {
      this.changeStamp = changeStamp;
   }

   public String getSite() {
      return site;
   }

   public void setSite(String site) {
      this.site = site;
   }

   public String getBom() {
      return bom;
   }

   public void setBom(String bom) {
      this.bom = bom;
   }

   public String getBomType() {
      return bomType;
   }

   public void setBomType(String bomType) {
      this.bomType = bomType;
   }

   public String getDescription() {
      return description;
   }

   public void setDescription(String description) {
      this.description = description;
   }

   public String getStatusBo() {
      return statusBo;
   }

   public void setStatusBo(String statusBo) {
      this.statusBo = statusBo;
   }

   public String getTmpBom() {
      return tmpBom;
   }

   public void setTmpBom(String tmpBom) {
      this.tmpBom = tmpBom;
   }

   public String getCopiedFromBomBo() {
      return copiedFromBomBo;
   }

   public void setCopiedFromBomBo(String copiedFromBomBo) {
      this.copiedFromBomBo = copiedFromBomBo;
   }

   public String getRevision() {
      return revision;
   }

   public void setRevision(String revision) {
      this.revision = revision;
   }

   public String getCurrentRevision() {
      return currentRevision;
   }

   public void setCurrentRevision(String currentRevision) {
      this.currentRevision = currentRevision;
   }

   public String getBomTemplate() {
      return bomTemplate;
   }

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

   public String getHasBeenReleased() {
      return hasBeenReleased;
   }

   public void setHasBeenReleased(String hasBeenReleased) {
      this.hasBeenReleased = hasBeenReleased;
   }

   public LocalDateTime getEffStartDate() {
      return effStartDate;
   }

   public void setEffStartDate(LocalDateTime effStartDate) {
      this.effStartDate = effStartDate;
   }

   public LocalDateTime getEffEndDate() {
      return effEndDate;
   }

   public void setEffEndDate(LocalDateTime effEndDate) {
      this.effEndDate = effEndDate;
   }

   public String getEffectivityControl() {
      return effectivityControl;
   }

   public void setEffectivityControl(String effectivityControl) {
      this.effectivityControl = effectivityControl;
   }

   public String getPrevSite() {
      return prevSite;
   }

   public void setPrevSite(String prevSite) {
      this.prevSite = prevSite;
   }

   public String getOriginalTransferKey() {
      return originalTransferKey;
   }

   public void setOriginalTransferKey(String originalTransferKey) {
      this.originalTransferKey = originalTransferKey;
   }

   public String getErpBillOfMaterial() {
      return erpBillOfMaterial;
   }

   public void setErpBillOfMaterial(String erpBillOfMaterial) {
      this.erpBillOfMaterial = erpBillOfMaterial;
   }

   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 LocalDateTime getPartitionDate() {
      return partitionDate;
   }

   public void setPartitionDate(LocalDateTime partitionDate) {
      this.partitionDate = partitionDate;
   }

   public String getModel() {
      return model;
   }

   public void setModel(String model) {
      this.model = model;
   }

public static final String HANDLE = "HANDLE";

public static final String CHANGE_STAMP = "CHANGE_STAMP";

public static final String SITE = "SITE";

public static final String BOM = "BOM";

public static final String BOM_TYPE = "BOM_TYPE";

public static final String DESCRIPTION = "DESCRIPTION";

public static final String STATUS_BO = "STATUS_BO";

public static final String TMP_BOM = "TMP_BOM";

public static final String COPIED_FROM_BOM_BO = "COPIED_FROM_BOM_BO";

public static final String REVISION = "REVISION";

public static final String CURRENT_REVISION = "CURRENT_REVISION";

public static final String BOM_TEMPLATE = "BOM_TEMPLATE";

public static final String HAS_BEEN_RELEASED = "HAS_BEEN_RELEASED";

public static final String EFF_START_DATE = "EFF_START_DATE";

public static final String EFF_END_DATE = "EFF_END_DATE";

public static final String EFFECTIVITY_CONTROL = "EFFECTIVITY_CONTROL";

public static final String PREV_SITE = "PREV_SITE";

public static final String ORIGINAL_TRANSFER_KEY = "ORIGINAL_TRANSFER_KEY";

public static final String ERP_BILL_OF_MATERIAL = "ERP_BILL_OF_MATERIAL";

public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME";

public static final String MODIFIED_DATE_TIME = "MODIFIED_DATE_TIME";

public static final String PARTITION_DATE = "PARTITION_DATE";

public static final String MODEL = "MODEL";


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

   @Override
   public String toString() {
      return "Bom{" +
         "handle = " + handle +
         ", changeStamp = " + changeStamp +
         ", site = " + site +
         ", bom = " + bom +
         ", bomType = " + bomType +
         ", description = " + description +
         ", statusBo = " + statusBo +
         ", tmpBom = " + tmpBom +
         ", copiedFromBomBo = " + copiedFromBomBo +
         ", revision = " + revision +
         ", currentRevision = " + currentRevision +
         ", bomTemplate = " + bomTemplate +
         ", hasBeenReleased = " + hasBeenReleased +
         ", effStartDate = " + effStartDate +
         ", effEndDate = " + effEndDate +
         ", effectivityControl = " + effectivityControl +
         ", prevSite = " + prevSite +
         ", originalTransferKey = " + originalTransferKey +
         ", erpBillOfMaterial = " + erpBillOfMaterial +
         ", createdDateTime = " + createdDateTime +
         ", modifiedDateTime = " + modifiedDateTime +
         ", partitionDate = " + partitionDate +
         ", model = " + model +
         "}";
   }
}