hPiBot openclaw ve Opencode ilk versiyonu[B
This commit is contained in:
139
backend/prisma/seed.js
Normal file
139
backend/prisma/seed.js
Normal file
@@ -0,0 +1,139 @@
|
||||
import { PrismaClient } from '@prisma/client'
|
||||
|
||||
const prisma = new PrismaClient()
|
||||
|
||||
async function main() {
|
||||
console.log('Örnek veriler ekleniyor...')
|
||||
|
||||
// Kullanıcılar
|
||||
const user1 = await prisma.user.create({
|
||||
data: {
|
||||
email: 'mustafa@example.com',
|
||||
username: 'mustafa',
|
||||
firstName: 'Mustafa',
|
||||
lastName: 'ÖZKAYA',
|
||||
password: '$2a$10$dummy',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=mustafa',
|
||||
}
|
||||
})
|
||||
|
||||
const user2 = await prisma.user.create({
|
||||
data: {
|
||||
email: 'ahmet@example.com',
|
||||
username: 'ahmet',
|
||||
firstName: 'Ahmet',
|
||||
lastName: 'Yılmaz',
|
||||
password: '$2a$10$dummy',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=ahmet',
|
||||
}
|
||||
})
|
||||
|
||||
const user3 = await prisma.user.create({
|
||||
data: {
|
||||
email: 'ayse@example.com',
|
||||
username: 'ayse',
|
||||
firstName: 'Ayşe',
|
||||
lastName: 'Kaya',
|
||||
password: '$2a$10$dummy',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=ayse',
|
||||
}
|
||||
})
|
||||
|
||||
console.log('✅ Kullanıcılar oluşturuldu')
|
||||
|
||||
// Kategoriler
|
||||
const cat1 = await prisma.category.create({ data: { name: 'Sebze & Meyve', icon: '🥬', color: '#4CAF50' } })
|
||||
const cat2 = await prisma.category.create({ data: { name: 'Et & Tavuk', icon: '🥩', color: '#F44336' } })
|
||||
const cat3 = await prisma.category.create({ data: { name: 'Süt & Süt Ürünleri', icon: '🥛', color: '#2196F3' } })
|
||||
const cat4 = await prisma.category.create({ data: { name: 'Ekmek & Unlu Mamüller', icon: '🍞', color: '#FF9800' } })
|
||||
const cat5 = await prisma.category.create({ data: { name: 'İçecekler', icon: '🥤', color: '#9C27B0' } })
|
||||
const cat6 = await prisma.category.create({ data: { name: 'Temizlik', icon: '🧹', color: '#607D8B' } })
|
||||
const cat7 = await prisma.category.create({ data: { name: 'Atıştırmalık', icon: '🍪', color: '#795548' } })
|
||||
const cat8 = await prisma.category.create({ data: { name: 'Dondurma', icon: '🍦', color: '#E91E63' } })
|
||||
|
||||
console.log('✅ Kategoriler oluşturuldu')
|
||||
|
||||
// Ürünler
|
||||
const products = await Promise.all([
|
||||
prisma.product.create({ data: { name: 'Domates', categoryId: cat1.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Soğan', categoryId: cat1.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Salatalık', categoryId: cat1.id, unit: 'adet' } }),
|
||||
prisma.product.create({ data: { name: 'Tavuk Göğsü', categoryId: cat2.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Kıyma', categoryId: cat2.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Kırmızı Et', categoryId: cat2.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Süt', categoryId: cat3.id, unit: 'L' } }),
|
||||
prisma.product.create({ data: { name: 'Yoğurt', categoryId: cat3.id, unit: 'adet' } }),
|
||||
prisma.product.create({ data: { name: 'Ekmek', categoryId: cat4.id, unit: 'adet' } }),
|
||||
prisma.product.create({ data: { name: 'Cola', categoryId: cat5.id, unit: 'adet' } }),
|
||||
prisma.product.create({ data: { name: 'Bulaşık Deterjanı', categoryId: cat6.id, unit: 'adet' } }),
|
||||
prisma.product.create({ data: { name: 'Baklava', categoryId: cat7.id, unit: 'kg' } }),
|
||||
prisma.product.create({ data: { name: 'Dondurma', categoryId: cat8.id, unit: 'L' } }),
|
||||
])
|
||||
|
||||
console.log('✅ Ürünler oluşturuldu')
|
||||
|
||||
// Market Listeleri
|
||||
const list1 = await prisma.shoppingList.create({
|
||||
data: {
|
||||
name: 'Haftalık Market',
|
||||
description: 'Bu hafta alınacaklar',
|
||||
color: '#4CAF50',
|
||||
ownerId: user1.id,
|
||||
}
|
||||
})
|
||||
|
||||
// Listeye üye ekle
|
||||
await prisma.listMember.create({
|
||||
data: {
|
||||
userId: user2.id,
|
||||
listId: list1.id,
|
||||
role: 'admin'
|
||||
}
|
||||
})
|
||||
|
||||
// Liste Öğeleri (productId kullan)
|
||||
await prisma.listItem.create({ data: { productId: products[0].id, quantity: 2, unit: 'kg', listId: list1.id } }) // Domates
|
||||
await prisma.listItem.create({ data: { productId: products[1].id, quantity: 1, unit: 'kg', listId: list1.id } }) // Soğan
|
||||
await prisma.listItem.create({ data: { productId: products[2].id, quantity: 3, unit: 'adet', listId: list1.id, isPurchased: true } }) // Salatalık
|
||||
await prisma.listItem.create({ data: { productId: products[3].id, quantity: 1, unit: 'kg', listId: list1.id } }) // Tavuk
|
||||
await prisma.listItem.create({ data: { productId: products[4].id, quantity: 0.5, unit: 'kg', listId: list1.id } }) // Kıyma
|
||||
await prisma.listItem.create({ data: { productId: products[6].id, quantity: 2, unit: 'L', listId: list1.id, isPurchased: true } }) // Süt
|
||||
await prisma.listItem.create({ data: { productId: products[7].id, quantity: 4, unit: 'adet', listId: list1.id } }) // Yoğurt
|
||||
await prisma.listItem.create({ data: { productId: products[8].id, quantity: 2, unit: 'adet', listId: list1.id } }) // Ekmek
|
||||
await prisma.listItem.create({ data: { productId: products[9].id, quantity: 6, unit: 'adet', listId: list1.id } }) // Cola
|
||||
await prisma.listItem.create({ data: { productId: products[10].id, quantity: 1, unit: 'adet', listId: list1.id, isPurchased: true } }) // Deterjan
|
||||
|
||||
console.log('✅ İlk liste oluşturuldu')
|
||||
|
||||
// İkinci liste
|
||||
const list2 = await prisma.shoppingList.create({
|
||||
data: {
|
||||
name: 'Bayram Alışverişi',
|
||||
description: 'Bayram için gerekli malzemeler',
|
||||
color: '#E91E63',
|
||||
ownerId: user1.id,
|
||||
}
|
||||
})
|
||||
|
||||
await prisma.listItem.create({ data: { productId: products[5].id, quantity: 2, unit: 'kg', listId: list2.id } }) // Kırmızı Et
|
||||
await prisma.listItem.create({ data: { productId: products[11].id, quantity: 1, unit: 'kg', listId: list2.id } }) // Baklava
|
||||
await prisma.listItem.create({ data: { productId: products[12].id, quantity: 2, unit: 'L', listId: list2.id } }) // Dondurma
|
||||
|
||||
console.log('✅ İkinci liste oluşturuldu')
|
||||
|
||||
console.log('\n🎉 Örnek veriler başarıyla eklendi!')
|
||||
console.log(` - 3 kullanıcı`)
|
||||
console.log(` - 8 kategori`)
|
||||
console.log(` - ${await prisma.product.count()} ürün`)
|
||||
console.log(` - 2 liste`)
|
||||
console.log(` - 13 liste öğesi`)
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((e) => {
|
||||
console.error(e)
|
||||
process.exit(1)
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect()
|
||||
})
|
||||
Reference in New Issue
Block a user