package org.icepear.echarts.components.grid3D;

import lombok.AccessLevel;
import lombok.Data;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.icepear.echarts.origin.coord.cartesian.GridOption;

@Accessors(chain = true)
@Data
public class Grid3D implements GridOption {

    private String mainType;

    private String type;

    @Setter(AccessLevel.NONE)
    private Object id;

    public Grid3D setId(Number id) {
        this.id = id;
        return this;
    }

    public Grid3D setId(String id) {
        this.id = id;
        return this;
    }

    @Setter(AccessLevel.NONE)
    private Object name;

    public Grid3D setName(Number name) {
        this.name = name;
        return this;
    }

    public Grid3D setName(String name) {
        this.name = name;
        return this;
    }

    private Number z;

    private Number zlevel;

    @Setter(AccessLevel.NONE)
    private Object width;

    public Grid3D setWidth(Number width) {
        this.width = width;
        return this;
    }

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

    @Setter(AccessLevel.NONE)
    private Object height;

    public Grid3D setHeight(Number height) {
        this.height = height;
        return this;
    }

    public Grid3D setHeight(String height) {
        this.height = height;
        return this;
    }

    @Setter(AccessLevel.NONE)
    private Object top;

    public Grid3D setTop(Number top) {
        this.top = top;
        return this;
    }

    public Grid3D setTop(String top) {
        this.top = top;
        return this;
    }

    @Setter(AccessLevel.NONE)
    private Object right;

    public Grid3D setRight(Number right) {
        this.right = right;
        return this;
    }

    public Grid3D setRight(String right) {
        this.right = right;
        return this;
    }

    @Setter(AccessLevel.NONE)
    private Object bottom;

    public Grid3D setBottom(Number bottom) {
        this.bottom = bottom;
        return this;
    }

    public Grid3D setBottom(String bottom) {
        this.bottom = bottom;
        return this;
    }

    @Setter(AccessLevel.NONE)
    private Object left;

    public Grid3D setLeft(Number left) {
        this.left = left;
        return this;
    }

    public Grid3D setLeft(String left) {
        this.left = left;
        return this;
    }

    private Number shadowBlur;

    private String shadowColor;

    private Number shadowOffsetX;

    private Number shadowOffsetY;

    private Boolean show;

    private Boolean containLabel;

    private String backgroundColor;

    private Number borderWidth;

    private String borderColor;

    private Object tooltip;

    private Object viewControl;

    private Number boxWidth;

    private Number boxDepth;


}
