Skip to content

Commit 27fdb3a

Browse files
committed
Adiciona projeto para gerar dados aleatórios em nodejs com https://fakerjs.dev
1 parent f3ce806 commit 27fdb3a

File tree

4 files changed

+289
-0
lines changed

4 files changed

+289
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# Log file
44
*.log
55

6+
node_modules/
67
target/
78
out/
89
bin/

gerar-dados/index.js

Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
const { faker } = require('@faker-js/faker');
2+
3+
// Função auxiliar para gerar uma string formatada para o insert
4+
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;
20+
}
21+
22+
// Gerar inserts para a tabela cliente
23+
function generateClienteInserts(numInserts) {
24+
const inserts = [];
25+
26+
for (let i = 0; i < numInserts; i++) {
27+
const nome = faker.person.fullName;
28+
const cpf = faker.number.bigInt({ min: 10000000000, max: 99999999999 });
29+
const cidade_id = faker.number.int({ min: 1, max: 5564 });
30+
const data_nascimento = faker.date.birthdate;
31+
32+
const insert = formatInsert('cliente', ['nome', 'cpf', 'cidade_id', 'data_nascimento'], [
33+
`'${nome}'`,
34+
`'${cpf}'`,
35+
`${cidade_id}`,
36+
`'${data_nascimento}'`
37+
]);
38+
39+
inserts.push(insert);
40+
}
41+
42+
return inserts;
43+
}
44+
45+
// Gerar inserts para a tabela loja
46+
function generateLojaInserts(numInserts) {
47+
const inserts = [];
48+
49+
for (let i = 0; i < numInserts; i++) {
50+
const cidade_id = faker.number.int({ min: 1, max: 5564 });
51+
const data_inauguracao = faker.date;
52+
53+
const insert = formatInsert('loja', ['cidade_id', 'data_inauguracao'], [
54+
`${cidade_id}`,
55+
`'${data_inauguracao}'`
56+
]);
57+
58+
inserts.push(insert);
59+
}
60+
61+
return inserts;
62+
}
63+
64+
// Gerar inserts para a tabela funcionario
65+
function generateFuncionarioInserts(numInserts) {
66+
const inserts = [];
67+
68+
for (let i = 0; i < numInserts; i++) {
69+
const nome = faker.person.fullName;
70+
const cpf = faker.number.int({ min: 10000000000, max: 99999999999 });
71+
const loja_id = faker.number.int({ min: 1, max: 5 });
72+
const data_nascimento = faker.person.birthdate;
73+
74+
const insert = formatInsert('funcionario', ['nome', 'cpf', 'loja_id', 'data_nascimento'], [
75+
`'${nome}'`,
76+
`'${cpf}'`,
77+
`${loja_id}`,
78+
`'${data_nascimento}'`
79+
]);
80+
81+
inserts.push(insert);
82+
}
83+
84+
return inserts;
85+
}
86+
87+
// Gerar inserts para a tabela marca
88+
function generateMarcaInserts(numInserts) {
89+
const inserts = [];
90+
91+
for (let i = 0; i < numInserts; i++) {
92+
const nome = faker.company.name;
93+
94+
const insert = formatInsert('marca', ['nome'], [`'${nome}'`]);
95+
inserts.push(insert);
96+
}
97+
98+
return inserts;
99+
}
100+
101+
// Gerar inserts para a tabela produto
102+
function generateProdutoInserts(numInserts) {
103+
const inserts = [];
104+
105+
for (let i = 0; i < numInserts; i++) {
106+
const nome = faker.commerce.productName();
107+
const descricao = faker.lorem.sentences();
108+
const marca_id = faker.number.int({ min: 1, max: 5 });
109+
const valor = faker.number.float({ min: 10, max: 1000 });
110+
111+
const insert = formatInsert('produto', ['nome', 'descricao', 'marca_id', 'valor'], [
112+
`'${nome}'`,
113+
`'${descricao}'`,
114+
`${marca_id}`,
115+
`${valor}`
116+
]);
117+
118+
inserts.push(insert);
119+
}
120+
121+
return inserts;
122+
}
123+
124+
// Gerar inserts para a tabela estoque
125+
function generateEstoqueInserts(numInserts) {
126+
const inserts = [];
127+
128+
for (let i = 0; i < numInserts; i++) {
129+
const produto_id = faker.number.int({ min: 1, max: 50 });
130+
const loja_id = faker.number.int({ min: 1, max: 10 });
131+
const quant = faker.number.int({ min: 1, max: 100 });
132+
133+
const insert = formatInsert('estoque', ['produto_id', 'loja_id', 'quant'], [
134+
`${produto_id}`,
135+
`${loja_id}`,
136+
`${quant}`
137+
]);
138+
139+
inserts.push(insert);
140+
}
141+
142+
return inserts;
143+
}
144+
145+
// Gerar inserts para a tabela venda
146+
function generateVendaInserts(numInserts) {
147+
const inserts = [];
148+
149+
for (let i = 0; i < numInserts; i++) {
150+
const loja_id = faker.number.int({ min: 1, max: 10 });
151+
const cliente_id = faker.number.int({ min: 1, max: 100 });
152+
const funcionario_id = faker.number.int({ min: 1, max: 50 });
153+
154+
const insert = formatInsert('venda', ['loja_id', 'cliente_id', 'funcionario_id'], [
155+
`${loja_id}`,
156+
`${cliente_id}`,
157+
`${funcionario_id}`
158+
]);
159+
160+
inserts.push(insert);
161+
}
162+
163+
return inserts;
164+
}
165+
166+
// Gerar inserts para a tabela item_venda
167+
function generateItemVendaInserts(numInserts) {
168+
const inserts = [];
169+
170+
for (let i = 0; i < numInserts; i++) {
171+
const venda_id = faker.number.int({ min: 1, max: 1000 });
172+
const produto_id = faker.number.int({ min: 1, max: 50 });
173+
const quant = faker.number.int({ min: 1, max: 10 });
174+
const valor = faker.number.int({ min: 10, max: 100 });
175+
176+
const insert = formatInsert('item_venda', ['venda_id', 'produto_id', 'quant', 'valor'], [
177+
`${venda_id}`,
178+
`${produto_id}`,
179+
`${quant}`,
180+
`${valor}`
181+
]);
182+
183+
inserts.push(insert);
184+
}
185+
186+
return inserts;
187+
}
188+
189+
// Gerar 10 inserts para a tabela cidade
190+
const cidadeInserts = generateCidadeInserts(10);
191+
192+
// Gerar 100 inserts para a tabela cliente
193+
const clienteInserts = generateClienteInserts(100);
194+
195+
// Gerar 20 inserts para a tabela loja
196+
const lojaInserts = generateLojaInserts(20);
197+
198+
// Gerar 50 inserts para a tabela funcionario
199+
const funcionarioInserts = generateFuncionarioInserts(50);
200+
201+
// Gerar 4 inserts para a tabela marca
202+
const marcaInserts = generateMarcaInserts(4);
203+
204+
// Gerar 200 inserts para a tabela produto
205+
const produtoInserts = generateProdutoInserts(200);
206+
207+
// Gerar 500 inserts para a tabela estoque
208+
const estoqueInserts = generateEstoqueInserts(500);
209+
210+
// Gerar 1000 inserts para a tabela venda
211+
const vendaInserts = generateVendaInserts(1000);
212+
213+
// Gerar 2000 inserts para a tabela item_venda
214+
const itemVendaInserts = generateItemVendaInserts(2000);
215+
216+
// 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 --');
221+
clienteInserts.forEach(insert => console.log(insert));
222+
223+
console.log('-- Inserts para tabela loja --');
224+
lojaInserts.forEach(insert => console.log(insert));
225+
226+
console.log('-- Inserts para tabela funcionario --');
227+
funcionarioInserts.forEach(insert => console.log(insert));
228+
229+
console.log('-- Inserts para tabela marca --');
230+
marcaInserts.forEach(insert => console.log(insert));
231+
232+
console.log('-- Inserts para tabela produto --');
233+
produtoInserts.forEach(insert => console.log(insert));
234+
235+
console.log('-- Inserts para tabela estoque --');
236+
estoqueInserts.forEach(insert => console.log(insert));
237+
238+
console.log('-- Inserts para tabela venda --');
239+
vendaInserts.forEach(insert => console.log(insert));
240+
241+
console.log('-- Inserts para tabela item_venda --');
242+
itemVendaInserts.forEach(insert => console.log(insert));

gerar-dados/package-lock.json

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gerar-dados/package.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "gerar-dados",
3+
"version": "1.0.0",
4+
"description": "Gerador de dados aleatórios usando https://fakerjs.dev",
5+
"main": "index.js",
6+
"scripts": {
7+
"start": "node index.js"
8+
},
9+
"keywords": [],
10+
"author": "Manoel Campos da Silva Filho",
11+
"license": "ISC",
12+
"dependencies": {
13+
"@faker-js/faker": "^8.0.2"
14+
}
15+
}

0 commit comments

Comments
 (0)