/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.ctecinf.model;

import br.com.ctecinf.orm.Model;
import br.com.ctecinf.orm.Table;
import br.com.ctecinf.orm.Column;
import java.sql.Types;

/**
 *
 * @author Cássio Conceição
 * @since 21/08/2019 17:06:02
 * @version 201908
 * @see http://ctecinf.com.br/
 */
@Table("produto")
public class Produto extends Model {

    @Column(name = "descricao", type = Types.VARCHAR, label = "Descrição", tableDisplay = true)
    private String descricao;

    @Column(name = "ean", type = Types.VARCHAR, label = "EAN")
    private String ean;

    @Column(name = "ean_trib", type = Types.VARCHAR, label = "EAN Trib.")
    private String eanTrib;

    @Column(name = "valor_unitario", type = Types.DECIMAL, label = "Valor Unit.", tableDisplay = true)
    private java.math.BigDecimal valorUnitario;

    @Column(name = "aliquota", type = Types.DECIMAL, label = "Alíquota")
    private java.math.BigDecimal aliquota;

    @Column(name = "und_com", type = Types.VARCHAR, isNotNull = true, label = "Und. Com.", defaultValues = {"PAR", "PC", "UN"})
    private String undCom;

    @Column(name = "cfop_id", type = Types.BIGINT, isNotNull = true, label = "CFOP", join = Cfop.class, isAutoComplete = false)
    private Cfop cfop;

    @Column(name = "ncm_id", type = Types.BIGINT, isNotNull = true, label = "NCM", join = Ncm.class, tableDisplay = true, isAutoComplete = false)
    private Ncm ncm;

    @Column(name = "icms_id", type = Types.BIGINT, isNotNull = true, label = "ICMS", join = Icms.class, isAutoComplete = false)
    private Icms icms;

    @Column(name = "icms_origem_id", type = Types.BIGINT, isNotNull = true, label = "ICMS Origem", join = IcmsOrigem.class, isAutoComplete = false)
    private IcmsOrigem icmsOrigem;

    @Column(name = "fornecedor_id", type = Types.BIGINT, label = "Fornecedor", join = Fornecedor.class, tableDisplay = true)
    private Fornecedor fornecedor;

    @Column(name = "grupo_id", type = Types.BIGINT, label = "Grupo", join = Grupo.class, isAutoComplete = false)
    private Grupo grupo;

    @Column(name = "sub_grupo_id", type = Types.BIGINT, label = "Sub Grupo", join = SubGrupo.class, isAutoComplete = false)
    private SubGrupo subGrupo;

    @Column(name = "ultima_atualizacao", type = Types.DATE, label = "Ultima Atualização", tableDisplay = true)
    private java.sql.Date ultimaAtualizacao;

    @Column(name = "diametro", type = Types.VARCHAR, label = "Dia.")
    private String diametro;

    @Column(name = "altura", type = Types.VARCHAR, label = "Alt.")
    private String altura;

    @Column(name = "base", type = Types.VARCHAR, label = "Base")
    private String base;

    @Column(name = "adicao", type = Types.VARCHAR, label = "Adição")
    private String adicao;

    @Column(name = "disponibilidade", type = Types.VARCHAR, label = "Disponibilidade")
    private String disponibilidade;

    @Column(name = "tamanho", type = Types.INTEGER, label = "Tam.")
    private Integer tamanho;

    @Column(name = "cor", type = Types.VARCHAR, label = "Cor")
    private String cor;

    @Column(name = "quantidade", type = Types.DECIMAL, label = "Qtde.", tableDisplay = true)
    private java.math.BigDecimal quantidade;

    @Column(name = "premio", type = Types.DECIMAL, label = "Prêmio")
    private java.math.BigDecimal premio;

    public String getDescricao() {
        return this.descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getEan() {
        return this.ean;
    }

    public void setEan(String ean) {
        this.ean = ean;
    }

    public String getEanTrib() {
        return this.eanTrib;
    }

    public void setEanTrib(String eanTrib) {
        this.eanTrib = eanTrib;
    }

    public java.math.BigDecimal getValorUnitario() {
        return this.valorUnitario;
    }

    public void setValorUnitario(java.math.BigDecimal valorUnitario) {
        this.valorUnitario = valorUnitario;
    }

    public java.math.BigDecimal getAliquota() {
        return this.aliquota;
    }

    public void setAliquota(java.math.BigDecimal aliquota) {
        this.aliquota = aliquota;
    }

    public String getUndCom() {
        return this.undCom;
    }

    public void setUndCom(String undCom) {
        this.undCom = undCom;
    }

    public Cfop getCfop() {
        return this.cfop;
    }

    public void setCfop(Cfop cfop) {
        this.cfop = cfop;
    }

    public Ncm getNcm() {
        return this.ncm;
    }

    public void setNcm(Ncm ncm) {
        this.ncm = ncm;
    }

    public Icms getIcms() {
        return this.icms;
    }

    public void setIcms(Icms icms) {
        this.icms = icms;
    }

    public IcmsOrigem getIcmsOrigem() {
        return this.icmsOrigem;
    }

    public void setIcmsOrigem(IcmsOrigem icmsOrigem) {
        this.icmsOrigem = icmsOrigem;
    }

    public Fornecedor getFornecedor() {
        return this.fornecedor;
    }

    public void setFornecedor(Fornecedor fornecedor) {
        this.fornecedor = fornecedor;
    }

    public Grupo getGrupo() {
        return this.grupo;
    }

    public void setGrupo(Grupo grupo) {
        this.grupo = grupo;
    }

    public SubGrupo getSubGrupo() {
        return this.subGrupo;
    }

    public void setSubGrupo(SubGrupo subGrupo) {
        this.subGrupo = subGrupo;
    }

    public java.sql.Date getUltimaAtualizacao() {
        return this.ultimaAtualizacao;
    }

    public void setUltimaAtualizacao(java.sql.Date ultimaAtualizacao) {
        this.ultimaAtualizacao = ultimaAtualizacao;
    }

    public String getDiametro() {
        return this.diametro;
    }

    public void setDiametro(String diametro) {
        this.diametro = diametro;
    }

    public String getAltura() {
        return this.altura;
    }

    public void setAltura(String altura) {
        this.altura = altura;
    }

    public String getBase() {
        return this.base;
    }

    public void setBase(String base) {
        this.base = base;
    }

    public String getAdicao() {
        return this.adicao;
    }

    public void setAdicao(String adicao) {
        this.adicao = adicao;
    }

    public String getDisponibilidade() {
        return this.disponibilidade;
    }

    public void setDisponibilidade(String disponibilidade) {
        this.disponibilidade = disponibilidade;
    }

    public Integer getTamanho() {
        return this.tamanho;
    }

    public void setTamanho(Integer tamanho) {
        this.tamanho = tamanho;
    }

    public String getCor() {
        return this.cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    public java.math.BigDecimal getQuantidade() {
        return this.quantidade;
    }

    public void setQuantidade(java.math.BigDecimal quantidade) {
        this.quantidade = quantidade;
    }

    public java.math.BigDecimal getPremio() {
        return this.premio;
    }

    public void setPremio(java.math.BigDecimal premio) {
        this.premio = premio;
    }

    @Override
    public String toString() {
        return "(" + getId() + ") " + descricao;
    }
}