Skip to content

Commit 1704d3e

Browse files
committed
Corrige geração de dados aleatórios
1 parent 27fdb3a commit 1704d3e

File tree

2 files changed

+25
-42
lines changed

2 files changed

+25
-42
lines changed

dados.sql

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ create unique INDEX ix_marca on marca (nome);
8686
create table produto (
8787
id serial primary key not null,
8888
nome varchar(200) not null,
89-
descricao varchar(5000) not null,
9089
marca_id int not null,
9190
valor decimal(10,2) not null,
9291
constraint fk_produto_marca foreign key (marca_id) references marca(id)

gerar-dados/index.js

Lines changed: 25 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,24 @@ const { faker } = require('@faker-js/faker');
22

33
// Função auxiliar para gerar uma string formatada para o insert
44
function formatInsert(table, columns, values) {
5-
return `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${values.join(', ')});`;
6-
}
7-
8-
// Gerar inserts para a tabela cidade
9-
function generateCidadeInserts(numInserts) {
10-
const inserts = [];
11-
12-
for (let i = 0; i < numInserts; i++) {
13-
const nome = faker.location.city();
14-
15-
const insert = formatInsert('cidade', ['nome'], [`'${nome}'`]);
16-
inserts.push(insert);
17-
}
18-
19-
return inserts;
5+
const newValues = values.map(val => {
6+
const quotes = val.startsWith("'")
7+
val = val.replaceAll("'", "")
8+
return quotes ? `'${val}'` : val
9+
})
10+
11+
return `INSERT INTO ${table} (${columns.join(', ')}) VALUES (${newValues.join(', ')});`;
2012
}
2113

2214
// Gerar inserts para a tabela cliente
2315
function generateClienteInserts(numInserts) {
2416
const inserts = [];
2517

2618
for (let i = 0; i < numInserts; i++) {
27-
const nome = faker.person.fullName;
19+
const nome = faker.person.fullName();
2820
const cpf = faker.number.bigInt({ min: 10000000000, max: 99999999999 });
2921
const cidade_id = faker.number.int({ min: 1, max: 5564 });
30-
const data_nascimento = faker.date.birthdate;
22+
const data_nascimento = faker.date.birthdate().toISOString().split('T')[0];
3123

3224
const insert = formatInsert('cliente', ['nome', 'cpf', 'cidade_id', 'data_nascimento'], [
3325
`'${nome}'`,
@@ -48,7 +40,7 @@ function generateLojaInserts(numInserts) {
4840

4941
for (let i = 0; i < numInserts; i++) {
5042
const cidade_id = faker.number.int({ min: 1, max: 5564 });
51-
const data_inauguracao = faker.date;
43+
const data_inauguracao = faker.date.birthdate().toISOString().split('T')[0];
5244

5345
const insert = formatInsert('loja', ['cidade_id', 'data_inauguracao'], [
5446
`${cidade_id}`,
@@ -66,10 +58,10 @@ function generateFuncionarioInserts(numInserts) {
6658
const inserts = [];
6759

6860
for (let i = 0; i < numInserts; i++) {
69-
const nome = faker.person.fullName;
61+
const nome = faker.person.fullName();
7062
const cpf = faker.number.int({ min: 10000000000, max: 99999999999 });
7163
const loja_id = faker.number.int({ min: 1, max: 5 });
72-
const data_nascimento = faker.person.birthdate;
64+
const data_nascimento = faker.date.birthdate().toISOString().split('T')[0];
7365

7466
const insert = formatInsert('funcionario', ['nome', 'cpf', 'loja_id', 'data_nascimento'], [
7567
`'${nome}'`,
@@ -89,7 +81,7 @@ function generateMarcaInserts(numInserts) {
8981
const inserts = [];
9082

9183
for (let i = 0; i < numInserts; i++) {
92-
const nome = faker.company.name;
84+
const nome = faker.company.name();
9385

9486
const insert = formatInsert('marca', ['nome'], [`'${nome}'`]);
9587
inserts.push(insert);
@@ -104,13 +96,11 @@ function generateProdutoInserts(numInserts) {
10496

10597
for (let i = 0; i < numInserts; i++) {
10698
const nome = faker.commerce.productName();
107-
const descricao = faker.lorem.sentences();
10899
const marca_id = faker.number.int({ min: 1, max: 5 });
109-
const valor = faker.number.float({ min: 10, max: 1000 });
100+
const valor = faker.number.int({ min: 10, max: 1000 });
110101

111-
const insert = formatInsert('produto', ['nome', 'descricao', 'marca_id', 'valor'], [
102+
const insert = formatInsert('produto', ['nome', 'marca_id', 'valor'], [
112103
`'${nome}'`,
113-
`'${descricao}'`,
114104
`${marca_id}`,
115105
`${valor}`
116106
]);
@@ -128,7 +118,7 @@ function generateEstoqueInserts(numInserts) {
128118
for (let i = 0; i < numInserts; i++) {
129119
const produto_id = faker.number.int({ min: 1, max: 50 });
130120
const loja_id = faker.number.int({ min: 1, max: 10 });
131-
const quant = faker.number.int({ min: 1, max: 100 });
121+
const quant = 10000;
132122

133123
const insert = formatInsert('estoque', ['produto_id', 'loja_id', 'quant'], [
134124
`${produto_id}`,
@@ -186,9 +176,6 @@ function generateItemVendaInserts(numInserts) {
186176
return inserts;
187177
}
188178

189-
// Gerar 10 inserts para a tabela cidade
190-
const cidadeInserts = generateCidadeInserts(10);
191-
192179
// Gerar 100 inserts para a tabela cliente
193180
const clienteInserts = generateClienteInserts(100);
194181

@@ -199,7 +186,7 @@ const lojaInserts = generateLojaInserts(20);
199186
const funcionarioInserts = generateFuncionarioInserts(50);
200187

201188
// Gerar 4 inserts para a tabela marca
202-
const marcaInserts = generateMarcaInserts(4);
189+
const marcaInserts = generateMarcaInserts(40);
203190

204191
// Gerar 200 inserts para a tabela produto
205192
const produtoInserts = generateProdutoInserts(200);
@@ -214,29 +201,26 @@ const vendaInserts = generateVendaInserts(1000);
214201
const itemVendaInserts = generateItemVendaInserts(2000);
215202

216203
// Imprimir os inserts gerados
217-
console.log('-- Inserts para tabela cidade --');
218-
cidadeInserts.forEach(insert => console.log(insert));
219-
220-
console.log('-- Inserts para tabela cliente --');
204+
console.log('');
221205
clienteInserts.forEach(insert => console.log(insert));
222206

223-
console.log('-- Inserts para tabela loja --');
207+
console.log('');
224208
lojaInserts.forEach(insert => console.log(insert));
225209

226-
console.log('-- Inserts para tabela funcionario --');
210+
console.log('');
227211
funcionarioInserts.forEach(insert => console.log(insert));
228212

229-
console.log('-- Inserts para tabela marca --');
213+
console.log('');
230214
marcaInserts.forEach(insert => console.log(insert));
231215

232-
console.log('-- Inserts para tabela produto --');
216+
console.log('');
233217
produtoInserts.forEach(insert => console.log(insert));
234218

235-
console.log('-- Inserts para tabela estoque --');
219+
console.log('');
236220
estoqueInserts.forEach(insert => console.log(insert));
237221

238-
console.log('-- Inserts para tabela venda --');
222+
console.log('');
239223
vendaInserts.forEach(insert => console.log(insert));
240224

241-
console.log('-- Inserts para tabela item_venda --');
225+
console.log('');
242226
itemVendaInserts.forEach(insert => console.log(insert));

0 commit comments

Comments
 (0)