395 lines
13 KiB
SQL
395 lines
13 KiB
SQL
CREATE TABLE "usuarios" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"saldo" decimal(10,2) NOT NULL,
|
|
"valor_gasto" decimal(10,2) NOT NULL,
|
|
"login" varchar(15) NOT NULL,
|
|
"senha" varchar(255) NOT NULL,
|
|
"token" varchar(64) NOT NULL,
|
|
"email" varchar(32) NOT NULL,
|
|
"codigo_email" int NOT NULL,
|
|
"status" int NOT NULL,
|
|
"nivel" int NOT NULL,
|
|
"ultima_atividade" datetime NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "clientes" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(32) NOT NULL,
|
|
"email" varchar(32) NOT NULL,
|
|
"saldo" decimal(10,2) NOT NULL,
|
|
"valor_gasto" decimal(10,2),
|
|
"slug" varchar(15) NOT NULL,
|
|
"celular" varchar(15) NOT NULL,
|
|
"codigo_email" tinyint NOT NULL,
|
|
"codigo_sms" tinyint NOT NULL,
|
|
"documento" int NOT NULL,
|
|
"observacao" text NOT NULL,
|
|
"insento_fiscal" tinyint NOT NULL,
|
|
"status" int NOT NULL,
|
|
"senha" varchar(255) NOT NULL,
|
|
"token" varchar(64) NOT NULL,
|
|
"ultima_atividade" datetime NOT NULL,
|
|
"email_marketing" tinyint NOT NULL,
|
|
"cartao_presente_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(18) NOT NULL,
|
|
"preco" decimal(10,0) NOT NULL,
|
|
"estoque" int NOT NULL,
|
|
"categoria_id" int NOT NULL,
|
|
"status" int NOT NULL,
|
|
"img" varchar(30) NOT NULL,
|
|
"descricao" text NOT NULL,
|
|
"tipo_produto" int NOT NULL,
|
|
"peso" float NOT NULL,
|
|
"pais_origem" varchar(12) NOT NULL,
|
|
"marca" varchar(18) NOT NULL,
|
|
"data_cadastro_produto" datetime NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "categorias" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(18) NOT NULL,
|
|
"descricao" text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "carrinho" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"cliente_id" int NOT NULL,
|
|
"quantidade" int NOT NULL,
|
|
"preco" decimal(10,2) NOT NULL,
|
|
"data" datetime NOT NULL,
|
|
"status" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "fornecedores" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(18) NOT NULL,
|
|
"descricao" text NOT NULL,
|
|
"documento" int NOT NULL,
|
|
"endereco" varchar(32) NOT NULL,
|
|
"numero" int NOT NULL,
|
|
"bairro" varchar(32) NOT NULL,
|
|
"complemento" varchar(15),
|
|
"cep" int NOT NULL,
|
|
"cidade" varchar(32) NOT NULL,
|
|
"estado" varchar(15) NOT NULL,
|
|
"nome_empresa" varchar(18) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "vendas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"data_venda" datetime NOT NULL,
|
|
"valor" decimal(10,2) NOT NULL,
|
|
"cliente_id" int NOT NULL,
|
|
"nome_destinatario" varchar(32) NOT NULL,
|
|
"metodo_pagamento" varchar(18) NOT NULL,
|
|
"desconto" decimal(10,2) NOT NULL,
|
|
"lucro_bruto" decimal(10,2),
|
|
"comentarios_cliente" text,
|
|
"end_to_end" varchar(32) NOT NULL,
|
|
"ip_cliente" varchar(32),
|
|
"status" int NOT NULL,
|
|
"cartao_presente_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "venda_detalhes" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"nome_produto" varchar(18) NOT NULL,
|
|
"preco_unitario" decimal(10,2) NOT NULL,
|
|
"quantidade" int NOT NULL,
|
|
"endereco_entrega" varchar(32) NOT NULL,
|
|
"numero_entrega" int NOT NULL,
|
|
"bairro_entrega" varchar(32) NOT NULL,
|
|
"complemento_entrega" varchar(15),
|
|
"cep_entrega" int NOT NULL,
|
|
"cidade_entrega" varchar(32) NOT NULL,
|
|
"estado_entrega" varchar(15) NOT NULL,
|
|
"metodo_envio" varchar(32) NOT NULL,
|
|
"nome_transportadora" varchar(32) NOT NULL,
|
|
"custo_envio" decimal(10,2) NOT NULL,
|
|
"codigo_rastreio" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "vendas_pagamentos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"numero_cartao" varchar(32),
|
|
"nome_titular_cartao" varchar(32),
|
|
"data_vencimento_cartao" date,
|
|
"codigo_seguranca_cartao" int,
|
|
"cpf_titular_cartao" int,
|
|
"bandeira_cartao" int,
|
|
"codigo_barras_boletos" int,
|
|
"numero_parcelas" int,
|
|
"valor_parcelas" decimal(10,2),
|
|
"juros" decimal(10,2)
|
|
);
|
|
|
|
CREATE TABLE "vendas_abandonadas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"produto_id" int NOT NULL,
|
|
"data_hora" datetime NOT NULL,
|
|
"motivo_abandono" text,
|
|
"valor_total" decimal(10,2) NOT NULL,
|
|
"forma_pagamento" varchar(32) NOT NULL,
|
|
"codigo_desconto" int,
|
|
"observacoes" text
|
|
);
|
|
|
|
CREATE TABLE "transportadora" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome_transportadora" varchar(32) NOT NULL,
|
|
"documento_cnpj" int NOT NULL,
|
|
"endereco" varchar(32) NOT NULL,
|
|
"numero" int NOT NULL,
|
|
"bairro" varchar(32) NOT NULL,
|
|
"complemento" varchar(15),
|
|
"cep" int NOT NULL,
|
|
"cidade" varchar(32) NOT NULL,
|
|
"estado" varchar(15) NOT NULL,
|
|
"telefone" varchar(32) NOT NULL,
|
|
"website" varchar(32) NOT NULL,
|
|
"email" varchar(32) NOT NULL,
|
|
"custo_frete" decimal(10,2) NOT NULL,
|
|
"estados_atuacao" varchar(32) NOT NULL,
|
|
"status" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "compras" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"data_compra" datetime NOT NULL,
|
|
"fornecedores_id" int NOT NULL,
|
|
"valor_total" decimal(10,2) NOT NULL,
|
|
"status" int NOT NULL,
|
|
"metodo_pagamento" int NOT NULL,
|
|
"data_entrega" datetime NOT NULL,
|
|
"numero_pedido" varchar(32) NOT NULL,
|
|
"observacoes" text,
|
|
"nome_produto" varchar(32) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "descontos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"codigo_desconto" int NOT NULL,
|
|
"tipo_desconto" varchar(32) NOT NULL,
|
|
"valor_desconto" decimal(10,2) NOT NULL,
|
|
"data_inicio" datetime NOT NULL,
|
|
"data_fim" datetime NOT NULL,
|
|
"status" int NOT NULL,
|
|
"descricao" text,
|
|
"uso_unico" int NOT NULL,
|
|
"valor_minimo" decimal(10,2)
|
|
);
|
|
|
|
CREATE TABLE "taxas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(32) NOT NULL,
|
|
"tipo_taxa" varchar(10) NOT NULL,
|
|
"valor" decimal(10,2) NOT NULL,
|
|
"estado" varchar(10),
|
|
"cidade" varchar(10),
|
|
"status" int(10),
|
|
"descricao" text,
|
|
"data_inicio" datetime,
|
|
"data_fim" datetime
|
|
);
|
|
|
|
CREATE TABLE "tributos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"nome" varchar(32) NOT NULL,
|
|
"tipo_tributo" enum(Federal,Estadual,Municipal) NOT NULL,
|
|
"alicota" decimal(10,2) NOT NULL,
|
|
"base_calculo" enum(valor total venda,valor produto) NOT NULL,
|
|
"codigo_tributo" varchar(20) NOT NULL,
|
|
"status" int(10) NOT NULL,
|
|
"descricao" text,
|
|
"data_inicio" datetime,
|
|
"data_fim" datetime,
|
|
"regras_aplicacao" text
|
|
);
|
|
|
|
CREATE TABLE "cartao_presente" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"codigo" varchar(50) NOT NULL,
|
|
"valor" decimal(10,2) NOT NULL,
|
|
"data_emissao" datetime NOT NULL,
|
|
"data_validade" datetime NOT NULL,
|
|
"status" enum(ativo,inativo,usado,expirado,cancelado) NOT NULL DEFAULT 'ativo',
|
|
"nome_destinatario" varchar(32) NOT NULL,
|
|
"mensagem_presente" text,
|
|
"data_ativacao" datetime NOT NULL,
|
|
"regras_uso" text,
|
|
"historico_uso" JSON
|
|
);
|
|
|
|
CREATE TABLE "clientes_address" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"cliente_id" int NOT NULL,
|
|
"endereco" varchar(32) NOT NULL,
|
|
"numero" int NOT NULL,
|
|
"bairro" varchar(32) NOT NULL,
|
|
"complemento" varchar(15),
|
|
"cep" int NOT NULL,
|
|
"cidade" varchar(32) NOT NULL,
|
|
"estado" varchar(15) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "clientes_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"cliente_id" int NOT NULL,
|
|
"produto_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "carrinho_itens" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"carrinho_id" int NOT NULL,
|
|
"produto_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "fornecedores_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"fornecedor_id" int NOT NULL,
|
|
"produto_id" int NOT NULL,
|
|
"preco" decimal(10,2) NOT NULL,
|
|
"prazo_entrega" datetime NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "vendas_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"produto_id" int NOT NULL,
|
|
"qtd_vendidos" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "vendas_transportadoras" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"transportadora_id" int NOT NULL,
|
|
"data_inicio" datetime NOT NULL,
|
|
"data_fim" datetime NOT NULL,
|
|
"status" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "compras_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"compras_id" int NOT NULL,
|
|
"produtos_id" int NOT NULL,
|
|
"quantidade_produto" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "descontos_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"desconto_id" int NOT NULL,
|
|
"produto_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "descontos_categorias" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"desconto_id" int NOT NULL,
|
|
"categoria_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "taxas_produtos" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"taxa_id" int NOT NULL,
|
|
"produto_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "taxas_categorias" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"taxa_id" int NOT NULL,
|
|
"categoria_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "taxas_vendas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"vendas_id" int NOT NULL,
|
|
"taxas_id" int NOT NULL,
|
|
"valor_taxa_item" decimal(10,2) NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "tributos_taxas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"tributo_id" int NOT NULL,
|
|
"taxas_id" int NOT NULL
|
|
);
|
|
|
|
CREATE TABLE "tributos_vendas" (
|
|
"id" int GENERATED AS IDENTITY PRIMARY KEY,
|
|
"tributo_id" int NOT NULL,
|
|
"vendas_id" int NOT NULL,
|
|
"valor_tributo_item" decimal(10,2) NOT NULL
|
|
);
|
|
|
|
ALTER TABLE "clientes_address" ADD CONSTRAINT "clientes_address_fk1" FOREIGN KEY ("cliente_id") REFERENCES "clientes" ("id");
|
|
|
|
ALTER TABLE "produtos" ADD CONSTRAINT "produtos_fk1" FOREIGN KEY ("categoria_id") REFERENCES "categorias" ("id");
|
|
|
|
ALTER TABLE "carrinho" ADD CONSTRAINT "carrinho_fk1" FOREIGN KEY ("cliente_id") REFERENCES "clientes" ("id");
|
|
|
|
ALTER TABLE "clientes_produtos" ADD CONSTRAINT "clientes_produtos_fk1" FOREIGN KEY ("cliente_id") REFERENCES "clientes" ("id");
|
|
|
|
ALTER TABLE "clientes_produtos" ADD CONSTRAINT "clientes_produtos_fk2" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "carrinho_itens" ADD CONSTRAINT "carrinho_itens_fk1" FOREIGN KEY ("carrinho_id") REFERENCES "carrinho" ("id");
|
|
|
|
ALTER TABLE "carrinho_itens" ADD CONSTRAINT "carrinho_itens_fk2" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "fornecedores_produtos" ADD CONSTRAINT "fornecedor_produtos_fk1" FOREIGN KEY ("fornecedor_id") REFERENCES "fornecedores" ("id");
|
|
|
|
ALTER TABLE "fornecedores_produtos" ADD CONSTRAINT "fornecedor_produtos_fk2" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "vendas" ADD CONSTRAINT "vendas_clientes_fk1" FOREIGN KEY ("cliente_id") REFERENCES "clientes" ("id");
|
|
|
|
ALTER TABLE "vendas_produtos" ADD CONSTRAINT "vendas_produtos_fk1" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "vendas_produtos" ADD CONSTRAINT "vendas_produtos_fk2" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "venda_detalhes" ADD CONSTRAINT "venda_detalhes_fk1" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "vendas_pagamentos" ADD CONSTRAINT "vendas_pagamentos_fk1" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "vendas_transportadoras" ADD CONSTRAINT "vendas_transportadoras_fk1" FOREIGN KEY ("transportadora_id") REFERENCES "transportadora" ("id");
|
|
|
|
ALTER TABLE "vendas_transportadoras" ADD CONSTRAINT "vendas_transportadoras_fk2" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "vendas_abandonadas" ADD CONSTRAINT "vendas_abandonadas_fk1" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "compras" ADD CONSTRAINT "compras_fornecedores_fk1" FOREIGN KEY ("fornecedores_id") REFERENCES "fornecedores" ("id");
|
|
|
|
ALTER TABLE "compras_produtos" ADD CONSTRAINT "compras_produtos_fk1" FOREIGN KEY ("compras_id") REFERENCES "compras" ("id");
|
|
|
|
ALTER TABLE "compras_produtos" ADD CONSTRAINT "compras_produtos_fk2" FOREIGN KEY ("produtos_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "descontos_produtos" ADD CONSTRAINT "descontos_produtos_fk1" FOREIGN KEY ("desconto_id") REFERENCES "descontos" ("id");
|
|
|
|
ALTER TABLE "descontos_produtos" ADD CONSTRAINT "descontos_produtos_fk2" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "descontos_categorias" ADD CONSTRAINT "descontos_categorias_fk1" FOREIGN KEY ("desconto_id") REFERENCES "descontos" ("id");
|
|
|
|
ALTER TABLE "descontos_categorias" ADD CONSTRAINT "descontos_categorias_fk2" FOREIGN KEY ("categoria_id") REFERENCES "categorias" ("id");
|
|
|
|
ALTER TABLE "taxas_produtos" ADD CONSTRAINT "taxas_produtos_fk1" FOREIGN KEY ("taxa_id") REFERENCES "taxas" ("id");
|
|
|
|
ALTER TABLE "taxas_produtos" ADD CONSTRAINT "taxas_produtos_fk2" FOREIGN KEY ("produto_id") REFERENCES "produtos" ("id");
|
|
|
|
ALTER TABLE "taxas_categorias" ADD CONSTRAINT "taxas_categorias_fk1" FOREIGN KEY ("taxa_id") REFERENCES "taxas" ("id");
|
|
|
|
ALTER TABLE "taxas_categorias" ADD CONSTRAINT "taxas_categorias_fk2" FOREIGN KEY ("categoria_id") REFERENCES "categorias" ("id");
|
|
|
|
ALTER TABLE "taxas_vendas" ADD CONSTRAINT "taxas_vendas_fk1" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|
|
|
|
ALTER TABLE "taxas_vendas" ADD CONSTRAINT "taxas_vendas_fk2" FOREIGN KEY ("taxas_id") REFERENCES "taxas" ("id");
|
|
|
|
ALTER TABLE "tributos_taxas" ADD CONSTRAINT "tributos_taxas_fk1" FOREIGN KEY ("tributo_id") REFERENCES "tributos" ("id");
|
|
|
|
ALTER TABLE "tributos_taxas" ADD CONSTRAINT "tributos_taxas_fk2" FOREIGN KEY ("taxas_id") REFERENCES "taxas" ("id");
|
|
|
|
ALTER TABLE "tributos_vendas" ADD CONSTRAINT "tributos_vendas_fk1" FOREIGN KEY ("tributo_id") REFERENCES "tributos" ("id");
|
|
|
|
ALTER TABLE "tributos_vendas" ADD CONSTRAINT "tributos_vendas_fk2" FOREIGN KEY ("vendas_id") REFERENCES "vendas" ("id");
|