package com.utopiaindustries.qualitychecker.models;

import androidx.annotation.NonNull;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class InspectionReportItem implements Serializable {

    private static final long serialVersionUID = 1L;
    private long id;
    private long reportId;
    private String asin;
    private String parentAsin;
    private String marketplace;
    private String sku;
    private String title;
    private String hsCode;
    private String modelNumber;
    private long itemPerBox;
    private String smColor;
    private String smSize;
    private String smItemName;
    private String orderNumber;
    private String article;
    private float totalPresentPieces;
    private float totalPresentPacks;
    private float totalPresentCartons;
    // sqrt( totalPresentCartons )
    private int cartonsSelected;
    private int packsSelected;
    private int piecesSelected;

    private float cartonWeight;
    private float cartonLength;
    private float cartonHeight;
    private float cartonWidth;
    private float packWeight;
    private float packWidth;
    private float packLength;
    private float packHeight;
    private long sampleSize;
    private long inspectionLevel;
    private double minorQualityLevel;
    private double majorQualityLevel;

    private long handFeelNotOkay;

    private int levelMajorDefects;
    private int levelMinorDefects;

    private int aqlSampleSize;

    private int checkedCartonsSelected;
    private int checkedPacksSelected;
    private int checkedPiecesSelected;

    private String packingDetails;
    //private String sampleSize;
    private String dateAdded;
    // wrapper
    private List<InspectionItemCheckPoint> checkPoints;
    private List<InspectionItemDimension> dimensions;
    private List<byte[]> dimensionImages = new ArrayList<>();

    private String fnsku;

    private String section;
    private String sectionForDraft;

    public long getId() {
        return id;
    }

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

    public long getReportId() {
        return reportId;
    }

    public void setReportId(long reportId) {
        this.reportId = reportId;
    }

    public String getAsin() {
        return asin;
    }

    public void setAsin(String asin) {
        this.asin = asin;
    }

    public String getParentAsin() {
        return parentAsin;
    }

    public void setParentAsin(String parentAsin) {
        this.parentAsin = parentAsin;
    }

    public String getMarketplace() {
        return marketplace;
    }

    public void setMarketplace(String marketplace) {
        this.marketplace = marketplace;
    }

    public String getSku() {
        return sku;
    }

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

    public String getTitle() {
        return title;
    }

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

    public String getHsCode() {
        return hsCode;
    }

    public void setHsCode(String hsCode) {
        this.hsCode = hsCode;
    }

    public String getModelNumber() {
        return modelNumber;
    }

    public void setModelNumber(String modelNumber) {
        this.modelNumber = modelNumber;
    }

    public long getItemPerBox() {
        return itemPerBox;
    }

    public void setItemPerBox(long itemPerBox) {
        this.itemPerBox = itemPerBox;
    }

    public String getSmColor() {
        return smColor;
    }

    public void setSmColor(String smColor) {
        this.smColor = smColor;
    }

    public String getSmSize() {
        return smSize;
    }

    public void setSmSize(String smSize) {
        this.smSize = smSize;
    }

    public String getSmItemName() {
        return smItemName;
    }

    public void setSmItemName(String smItemName) {
        this.smItemName = smItemName;
    }

    public List<InspectionItemCheckPoint> getCheckPoints() {
        return checkPoints;
    }

    public void setCheckPoints(List<InspectionItemCheckPoint> checkPoints) {
        this.checkPoints = checkPoints;
    }

    public List<InspectionItemDimension> getDimensions() {
        return dimensions;
    }

    public void setDimensions(List<InspectionItemDimension> dimensions) {
        this.dimensions = dimensions;
    }

    public String getOrderNumber() {
        return orderNumber;
    }

    public void setOrderNumber(String orderNumber) {
        this.orderNumber = orderNumber;
    }

    public String getArticle() {
        return article;
    }

    public void setArticle(String article) {
        this.article = article;
    }

    public float getTotalPresentPieces() {
        return totalPresentPieces;
    }

    public void setTotalPresentPieces(float totalPresentPieces) {
        this.totalPresentPieces = totalPresentPieces;
    }

    public float getTotalPresentPacks() {
        return totalPresentPacks;
    }

    public void setTotalPresentPacks(float totalPresentPacks) {
        this.totalPresentPacks = totalPresentPacks;
    }

    public float getTotalPresentCartons() {
        return totalPresentCartons;
    }

    public void setTotalPresentCartons(float totalPresentCartons) {
        this.totalPresentCartons = totalPresentCartons;
    }

    public int getCartonsSelected() {
        return cartonsSelected;
    }

    public void setCartonsSelected(int cartonsSelected) {
        this.cartonsSelected = cartonsSelected;
    }

    public int getPacksSelected() {
        return packsSelected;
    }

    public void setPacksSelected(int packsSelected) {
        this.packsSelected = packsSelected;
    }

    public String getPackingDetails() {
        return packingDetails;
    }

    public void setPackingDetails(String packingDetails) {
        this.packingDetails = packingDetails;
    }

    public int getPiecesSelected() {
        return piecesSelected;
    }

    public void setPiecesSelected(int piecesSelected) {
        this.piecesSelected = piecesSelected;
    }

    public long getSampleSize() {
        return sampleSize;
    }

    public void setSampleSize(long sampleSize) {
        this.sampleSize = sampleSize;
    }

    public long getHandFeelNotOkay() {
        return handFeelNotOkay;
    }

    public void setHandFeelNotOkay(long handFeelNotOkay) {
        this.handFeelNotOkay = handFeelNotOkay;
    }

    public String getDateAdded() {
        return dateAdded;
    }

    public void setDateAdded(String dateAdded) {
        this.dateAdded = dateAdded;
    }

    public String getFnsku() {
        return fnsku;
    }

    public void setFnsku(String fnsku) {
        this.fnsku = fnsku;
    }

    public int getCheckedCartonsSelected() {
        return checkedCartonsSelected;
    }

    public void setCheckedCartonsSelected(int checkedCartonsSelected) {
        this.checkedCartonsSelected = checkedCartonsSelected;
    }

    public int getCheckedPacksSelected() {
        return checkedPacksSelected;
    }

    public void setCheckedPacksSelected(int checkedPacksSelected) {
        this.checkedPacksSelected = checkedPacksSelected;
    }

    public int getCheckedPiecesSelected() {
        return checkedPiecesSelected;
    }

    public void setCheckedPiecesSelected(int checkedPiecesSelected) {
        this.checkedPiecesSelected = checkedPiecesSelected;
    }

    public double getMajorQualityLevel() {
        return majorQualityLevel;
    }

    public void setMajorQualityLevel(double majorQualityLevel) {
        this.majorQualityLevel = majorQualityLevel;
    }

    public double getMinorQualityLevel() {
        return minorQualityLevel;
    }

    public void setMinorQualityLevel(double minorQualityLevel) {
        this.minorQualityLevel = minorQualityLevel;
    }

    public long getInspectionLevel() {
        return inspectionLevel;
    }

    public void setInspectionLevel(long inspectionLevel) {
        this.inspectionLevel = inspectionLevel;
    }

    public float getPackHeight() {
        return packHeight;
    }

    public void setPackHeight(float packHeight) {
        this.packHeight = packHeight;
    }

    public float getPackLength() {
        return packLength;
    }

    public void setPackLength(float packLength) {
        this.packLength = packLength;
    }

    public float getPackWidth() {
        return packWidth;
    }

    public void setPackWidth(float packWidth) {
        this.packWidth = packWidth;
    }

    public float getPackWeight() {
        return packWeight;
    }

    public void setPackWeight(float packWeight) {
        this.packWeight = packWeight;
    }

    public float getCartonWidth() {
        return cartonWidth;
    }

    public void setCartonWidth(float cartonWidth) {
        this.cartonWidth = cartonWidth;
    }

    public float getCartonHeight() {
        return cartonHeight;
    }

    public void setCartonHeight(float cartonHeight) {
        this.cartonHeight = cartonHeight;
    }

    public float getCartonLength() {
        return cartonLength;
    }

    public void setCartonLength(float cartonLength) {
        this.cartonLength = cartonLength;
    }

    public float getCartonWeight() {
        return cartonWeight;
    }

    public void setCartonWeight(float cartonWeight) {
        this.cartonWeight = cartonWeight;
    }

    public int getAqlSampleSize() {
        return aqlSampleSize;
    }

    public void setAqlSampleSize(int aqlSampleSize) {
        this.aqlSampleSize = aqlSampleSize;
    }

public int getLevelMajorDefects() {
    return levelMajorDefects;
}

public void setLevelMajorDefects(int levelMajorDefects) {
    this.levelMajorDefects = levelMajorDefects;
}

public int getLevelMinorDefects() {
    return levelMinorDefects;
}

public void setLevelMinorDefects(int levelMinorDefects) {
    this.levelMinorDefects = levelMinorDefects;
}

    public String getSection() {
        return section;
    }

    public void setSection(String section) {
        this.section = section;
    }

    public String getSectionForDraft() {
        return sectionForDraft;
    }

    public void setSectionForDraft(String sectionForDraft) {
        this.sectionForDraft = sectionForDraft;
    }

    public List<byte[]> getDimensionImages() {
        return dimensionImages;
    }

    public void addDimensionImageList(byte[] image) {
        this.dimensionImages.add(image);
    }

    @Override
    public String toString() {
        return "InspectionReportItem{" +
                "id=" + id +
                ", reportId=" + reportId +
                ", asin='" + asin + '\'' +
                ", parentAsin='" + parentAsin + '\'' +
                ", marketplace='" + marketplace + '\'' +
                ", sku='" + sku + '\'' +
                ", title='" + title + '\'' +
                ", hsCode='" + hsCode + '\'' +
                ", modelNumber='" + modelNumber + '\'' +
                ", itemPerBox=" + itemPerBox +
                ", smColor='" + smColor + '\'' +
                ", smSize='" + smSize + '\'' +
                ", smItemName='" + smItemName + '\'' +
                ", orderNumber='" + orderNumber + '\'' +
                ", article='" + article + '\'' +
                ", totalPresentPieces=" + totalPresentPieces +
                ", totalPresentPacks=" + totalPresentPacks +
                ", totalPresentCartons=" + totalPresentCartons +
                ", cartonsSelected=" + cartonsSelected +
                ", packsSelected=" + packsSelected +
                ", piecesSelected=" + piecesSelected +
                ", cartonWeight=" + cartonWeight +
                ", cartonLength=" + cartonLength +
                ", cartonHeight=" + cartonHeight +
                ", cartonWidth=" + cartonWidth +
                ", packWeight=" + packWeight +
                ", packWidth=" + packWidth +
                ", packLength=" + packLength +
                ", packHeight=" + packHeight +
                ", sampleSize=" + sampleSize +
                ", inspectionLevel=" + inspectionLevel +
                ", minorQualityLevel=" + minorQualityLevel +
                ", majorQualityLevel=" + majorQualityLevel +
                ", levelMajorDefects=" + levelMajorDefects +
                ", levelMinorDefects=" + levelMinorDefects +
                ", aqlSampleSize=" + aqlSampleSize +
                ", checkedCartonsSelected=" + checkedCartonsSelected +
                ", checkedPacksSelected=" + checkedPacksSelected +
                ", checkedPiecesSelected=" + checkedPiecesSelected +
                ", packingDetails='" + packingDetails + '\'' +
                ", dateAdded='" + dateAdded + '\'' +
                ", checkPoints=" + checkPoints +
                ", section='" + section + '\'' +
                ", dimensions=" + dimensions +
                ", fnsku='" + fnsku + '\'' +
                ", dimensionImages=" + dimensionImages +
                '}';
    }
}
