package com.utopiaindustries.model.ctp;

import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;

public class JobCardItem {
    private long id;
    private long jobCardId;
    private long itemId;
    private String sku;
    private BigDecimal expectedProduction;
    private BigDecimal actualProduction;
    private BigDecimal totalProduction;
    private long accountId;
    private BigDecimal production;
    private String length;
    private String width;
    private String gsm;
    private String wtPly;
    private String ply;
    // wrapper
    private List<CutPiece> cutPieces;
    private String title;
    private boolean isSelected;

    public JobCardItem() {
        this.expectedProduction = BigDecimal.ZERO;
        this.actualProduction = BigDecimal.ZERO;
        this.totalProduction = BigDecimal.ZERO;
        this.production = BigDecimal.ZERO;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getJobCardId() {
        return jobCardId;
    }

    public void setJobCardId(long jobCardId) {
        this.jobCardId = jobCardId;
    }

    public long getItemId() {
        return itemId;
    }

    public void setItemId(long itemId) {
        this.itemId = itemId;
    }

    public String getSku() {
        return sku;
    }

    public void setSku(String sku) {
        this.sku = sku;
    }

    public BigDecimal getExpectedProduction() {
        return expectedProduction;
    }

    public void setExpectedProduction(BigDecimal expectedProduction) {
        this.expectedProduction = expectedProduction;
    }

    public BigDecimal getActualProduction() {
        return actualProduction;
    }

    public void setActualProduction(BigDecimal actualProduction) {
        this.actualProduction = actualProduction;
    }

    public List<CutPiece> getCutPieces() {
        return cutPieces;
    }

    public void setCutPieces(List<CutPiece> cutPieces) {
        this.cutPieces = cutPieces;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public BigDecimal getTotalProduction() {
        return totalProduction;
    }

    public void setTotalProduction(BigDecimal totalProduction) {
        this.totalProduction = totalProduction;
    }

    public long getAccountId() {
        return accountId;
    }

    public void setAccountId(long accountId) {
        this.accountId = accountId;
    }

    public BigDecimal getProduction() {
        return production;
    }

    public void setProduction(BigDecimal production) {
        this.production = production;
    }

    public String getLength() {
        return length;
    }

    public void setLength(String length) {
        this.length = length;
    }

    public String getWidth() {
        return width;
    }

    public void setWidth(String width) {
        this.width = width;
    }

    public String getGsm() {
        return gsm;
    }

    public void setGsm(String gsm) {
        this.gsm = gsm;
    }

    public String getWtPly() {
        return wtPly;
    }

    public void setWtPly(String wtPly) {
        this.wtPly = wtPly;
    }

    public String getPly() {
        return ply;
    }

    public void setPly(String ply) {
        this.ply = ply;
    }

    public boolean getIsSelected() {
        return isSelected;
    }

    public void setIsSelected(boolean selected) {
        isSelected = selected;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        JobCardItem item = (JobCardItem) o;
        return id == item.id;
    }

    @Override
    public int hashCode() {
        return Objects.hash(id);
    }

    @Override
    public String toString() {
        return "JobCardItem{" +
                "id=" + id +
                ", jobCardId=" + jobCardId +
                ", itemId=" + itemId +
                ", sku='" + sku + '\'' +
                ", expectedProduction=" + expectedProduction +
                ", actualProduction=" + actualProduction +
                ", totalProduction=" + totalProduction +
                ", production=" + production +
                ", length='" + length + '\'' +
                ", width='" + width + '\'' +
                ", gsm='" + gsm + '\'' +
                ", wtPly='" + wtPly + '\'' +
                ", ply='" + ply + '\'' +
                ", cutPieces=" + cutPieces +
                ", title='" + title + '\'' +
                '}';
    }
}
