Numex yayın: seed.js
This commit is contained in:
parent
d02c40da4d
commit
46f97830f2
57
seed.js
Normal file
57
seed.js
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* seed.js
|
||||||
|
* İsteğe bağlı örnek veri yükleyici — npm run seed ile çalışır.
|
||||||
|
* Dashboard'u dolu göstermek için örnek ürünler ve hareketler oluşturur.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const productModel = require('./models/productModel');
|
||||||
|
const stockModel = require('./models/stockModel');
|
||||||
|
const categoryModel = require('./models/categoryModel');
|
||||||
|
|
||||||
|
const sampleProducts = [
|
||||||
|
{ name: 'Ultrabook Laptop', categoryId: 1, unitPrice: 25000, stock: 8, minimumStock: 10 },
|
||||||
|
{ name: 'Kablosuz Kulaklık', categoryId: 1, unitPrice: 1500, stock: 3, minimumStock: 8 },
|
||||||
|
{ name: 'Mekanik Klavye', categoryId: 1, unitPrice: 2200, stock: 12, minimumStock: 5 },
|
||||||
|
{ name: 'Zeytinyağı 5L', categoryId: 2, unitPrice: 850, stock: 20, minimumStock: 15 },
|
||||||
|
{ name: 'Fındık 1kg', categoryId: 2, unitPrice: 180, stock: 2, minimumStock: 10 },
|
||||||
|
{ name: 'Tişört (S)', categoryId: 3, unitPrice: 350, stock: 40, minimumStock: 20 },
|
||||||
|
{ name: 'Kot Pantolon', categoryId: 3, unitPrice: 1200, stock: 9, minimumStock: 12 },
|
||||||
|
{ name: 'Ofis Koltuğu', categoryId: 4, unitPrice: 4500, stock: 6, minimumStock: 6 },
|
||||||
|
{ name: 'Maske Kutusu', categoryId: 4, unitPrice: 90, stock: 60, minimumStock: 30 }
|
||||||
|
];
|
||||||
|
|
||||||
|
function run() {
|
||||||
|
categoryModel.readAll(); // varsayılan kategorileri oluştur
|
||||||
|
|
||||||
|
const created = sampleProducts.map((p) => productModel.create(p));
|
||||||
|
|
||||||
|
// Bazı örnek giriş/çıkış hareketleri
|
||||||
|
const samples = [
|
||||||
|
{ pi: created[0], type: 'out', qty: 2, note: 'Satış' },
|
||||||
|
{ pi: created[2], type: 'in', qty: 5, note: 'Tedarikçi sevkiyatı' },
|
||||||
|
{ pi: created[1], type: 'out', qty: 1, note: 'Satış' },
|
||||||
|
{ pi: created[4], type: 'in', qty: 8, note: 'Toptan alım' },
|
||||||
|
{ pi: created[5], type: 'in', qty: 25, note: 'Sezon stoku' },
|
||||||
|
{ pi: created[7], type: 'out', qty: 3, note: 'Ofis kullanımı' }
|
||||||
|
];
|
||||||
|
|
||||||
|
for (const s of samples) {
|
||||||
|
const qty = s.qty;
|
||||||
|
const newStock =
|
||||||
|
s.type === 'in' ? Number(s.pi.stock) + qty : Number(s.pi.stock) - qty;
|
||||||
|
productModel.update(s.pi.id, { stock: newStock });
|
||||||
|
stockModel.addMovement({
|
||||||
|
productId: s.pi.id,
|
||||||
|
type: s.type,
|
||||||
|
quantity: qty,
|
||||||
|
note: s.note,
|
||||||
|
remainingStock: newStock
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(`✔ Seed tamam: ${created.length} ürün ve örnek hareketler eklendi.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
run();
|
||||||
Loading…
Reference in New Issue
Block a user