# README
Sistema de vendas base
Versão básica e open-source do código usado na criação de um sistema de uma loja real. A versão completa com os dados especificos do projeto será criada e vendida de forma privada. Este documento descreve a estrutura de dados utilizada para representar uma Nota Fiscal Eletrônica (NF-e) em um sistema de vendas.
Tabelas do Banco de Dados
A estrutura é baseada em múltiplas tabelas relacionadas para garantir a integridade e eficiência dos dados. Pensada para posteriormente ser usada com GORM.
1. Empresa
(Dados da Empresa - Hardcoded)
Campo | Tipo de Dado | Descrição |
---|---|---|
Nome | string | Nome da empresa |
CNPJ | string | Número do CNPJ da empresa |
InscricaoEstadual | string | Inscrição Estadual da empresa |
2. Endereco
(Dados de Endereço)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Logradouro | string | Rua, Avenida, etc. |
Numero | string | Número do endereço |
Complemento | string | Complemento do endereço |
Bairro | string | Bairro |
Municipio | string | Município |
UF | string | Unidade Federativa |
CEP | string | Código de Endereçamento Postal |
3. Cliente
(Dados do Cliente)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Nome | string | Nome do cliente |
CPF | string | CPF do cliente (ou CNPJ) |
CNPJ | string | CNPJ do cliente (pode ser nulo) |
EnderecoID | uint | Chave estrangeira (Endereco.ID) |
Telefone | string | Telefone do cliente |
Email | string | Email do cliente |
4. ClasseProduto
(Classificação do Produto)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Nome | string | Nome da classe do produto |
Descricao | string | Descrição da classe do produto |
NCM | string | Código NCM da classe do produto |
Tributacoes | []Tributacao | Array de tributações aplicadas à classe do produto |
5. Produto
(Dados do Produto)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Nome | string | Nome do produto |
Descricao | string | Descrição do produto |
ClasseProdutoID | uint | Chave estrangeira (ClasseProduto.ID) |
ValorUnitario | float64 | Valor unitário do produto |
Unidade | string | Unidade de medida (ex: UN, KG, M) |
Estoque | int | Quantidade em estoque |
6. Tributacao
(Dados de Tributação)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Nome | string | Nome do tributo (ex: ICMS, IPI, PIS, COFINS) |
Aliquota | float64 | Alíquota do tributo |
TipoTributo | string | Tipo de tributo |
7. ItemNotaFiscal
(Itens da Nota Fiscal)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
NotaFiscalID | uint | Chave estrangeira (NotaFiscal.ID) |
ProdutoID | uint | Chave estrangeira (Produto.ID) |
Quantidade | float64 | Quantidade do produto |
ValorUnitario | float64 | Valor unitário do produto na nota |
ValorTotal | float64 | Valor total do item (Quantidade * ValorUnitario) |
8. NotaFiscal
(Dados da Nota Fiscal)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | gorm.Model | Chave primária (GORM) |
Numero | string | Número da NF-e |
ClienteID | uint | Chave estrangeira (Cliente.ID) |
Items | []ItemNotaFiscal | Array de itens da nota fiscal |
ValorTotal | float64 | Valor total da nota fiscal |
FormaPagamentoID | uint | Chave estrangeira (FormaPagamento.ID) |
Desconto | float64 | Valor do desconto aplicado |
Observacao | string | Observações adicionais |
ChaveAcesso | string | Chave de acesso da NF-e (após autorização) |
9. FormaPagamento
(Formas de Pagamento)
Campo | Tipo de Dado | Descrição |
---|---|---|
ID | uint | Chave primária |
Nome | string | Nome da forma de pagamento (ex: Dinheiro, Cartão) |
Este é um resumo. Uma NF-e real contém muitos mais detalhes e campos específicos dependendo da legislação e do tipo de operação.