import { prisma } from '../src/lib/prisma' import { PurchaseReceiptsService } from '../src/purchase-receipts/purchase-receipts.service' async function main() { // if ((await prisma.role.count()) === 0) { // await prisma.role.upsert({ // where: { id: 0, name: 'Admin' }, // update: {}, // create: { // name: 'Admin', // }, // }) // } // if ((await prisma.user.count()) === 0) { // const adminRole = await prisma.role.findUnique({ where: { name: 'Admin' } }) // if (!adminRole) { // return // } // await prisma.user.upsert({ // where: { id: 1, firstName: 'عباس', lastName: 'حسنی' }, // update: {}, // create: { // firstName: 'عباس', // lastName: 'حسنی', // roleId: adminRole.id, // mobileNumber: '09120258156', // password: '12345678', // }, // }) // } // if ((await prisma.inventory.count()) === 0) { // await prisma.inventory.createMany({ // data: [ // { name: 'انبار مرکزی', location: 'تهران', isPointOfSale: false, isActive: true }, // { // name: 'فروشگاه حضوری', // location: 'مرکز شهر', // isPointOfSale: true, // isActive: true, // }, // { // name: 'فروشگاه اینترنتی', // location: 'مرکز شهر', // isPointOfSale: true, // isActive: true, // }, // ], // }) // } // if ((await prisma.productCategory.count()) === 0) { // await prisma.productCategory.createMany({ // data: Array.from({ length: 10 }, (_, i) => ({ name: `دسته‌ی ${i + 1}` })), // }) // } // if ((await prisma.productBrand.count()) === 0) { // await prisma.productBrand.createMany({ // data: Array.from({ length: 10 }, (_, i) => ({ name: `برند ${i + 1}` })), // }) // } // if ((await prisma.supplier.count()) === 0) { // await prisma.supplier.createMany({ // data: Array.from({ length: 9 }, (_, i) => ({ // firstName: 'تامین‌', // lastName: `کننده ${i + 1}`, // mobileNumber: `0912000000${i + 1}`, // email: `supplier${i + 1}@example.com`, // })), // }) // } // if ((await prisma.customer.count()) === 0) { // await prisma.customer.createMany({ // data: Array.from({ length: 5 }, (_, i) => ({ // firstName: 'مشتری', // lastName: `${i + 1}`, // mobileNumber: `0913000000${i + 1}`, // email: `customer${i + 1}@example.com`, // })), // }) // } // if ((await prisma.product.count()) === 0) { // const categories = await prisma.productCategory.findMany() // const brands = await prisma.productBrand.findMany() // await prisma.product.createMany({ // data: Array.from({ length: 100 }, (_, i) => ({ // name: `کالای ${i + 1}`, // sku: `SKU-${1000 + i + 1}`, // salePrice: parseInt((Math.random() * (100 - 10) + 10).toString()) * 10000, // categoryId: categories[i % categories.length].id, // brandId: brands[i % brands.length].id, // })), // }) // } // if ((await prisma.bank.count()) === 0) { // await prisma.bank.createMany({ // data: [ // { // name: 'آینده', // shortName: 'ain', // }, // { // name: 'ایران زمین', // shortName: 'irz', // }, // { // name: 'اقتصاد نوین', // shortName: 'eqn', // }, // { // name: 'انصار', // shortName: 'ans', // }, // { // name: 'پاسارگاد', // shortName: 'pas', // }, // { // name: 'پارسیان', // shortName: 'prs', // }, // { // name: 'پست‌ بانک ایران', // shortName: 'pbi', // }, // { // name: 'تجارت', // shortName: 'tej', // }, // { // name: 'توسعه تعاون', // shortName: 'tav', // }, // { // name: 'توسعه صادرات', // shortName: 'tes', // }, // { // name: 'حکمت ایرانیان', // shortName: 'hek', // }, // { // name: 'رفاه کارگران', // shortName: 'ref', // }, // { // name: 'قرض‌الحسنه رسالت', // shortName: 'res', // }, // { // name: 'قرض‌الحسنه مهر ایران', // shortName: 'meh', // }, // { // name: 'قوامین', // shortName: 'qva', // }, // { // name: 'کشاورزی', // shortName: 'kes', // }, // { // name: 'کوثر', // shortName: 'kos', // }, // { // name: 'دی', // shortName: 'diy', // }, // { // name: 'صنعت و معدن', // shortName: 'san', // }, // { // name: 'سینا', // shortName: 'sin', // }, // { // name: 'سرمایه', // shortName: 'sar', // }, // { // name: 'سپه', // shortName: 'sep', // }, // { // name: 'شهر', // shortName: 'shr', // }, // { // name: 'صادرات ایران', // shortName: 'sir', // }, // { // name: 'سامان', // shortName: 'sam', // }, // { // name: 'مرکزی', // shortName: 'mar', // }, // { // name: 'مسکن', // shortName: 'mas', // }, // { // name: 'ملت', // shortName: 'mel', // }, // { // name: 'ملی ایران', // shortName: 'mli', // }, // { // name: 'مهر اقتصاد', // shortName: 'meg', // }, // { // name: 'کارآفرین', // shortName: 'kar', // }, // { // name: 'تات', // shortName: 'tat', // }, // ], // }) // } // if ((await prisma.bankBranch.count()) === 0) { // await prisma.bankBranch.createMany({ // data: [ // { // bankId: 1, // name: 'شعبه مرکزی', // code: '001', // }, // { // bankId: 2, // name: 'شعبه مرکزی', // code: '002', // }, // { // bankId: 1, // name: 'شعبه ونک', // code: '003', // }, // ], // }) // } // if ((await prisma.bankAccount.count()) === 0) { // await prisma.bankAccount.createMany({ // data: [ // { // branchId: 4, // accountNumber: '1234567890', // name: 'حساب اصلی آینده', // iban: 'IR000123456789012345678901', // }, // { // branchId: 5, // accountNumber: '0987654321', // name: 'حساب اصلی ایران زمین', // iban: 'IR000987654321098765432109', // }, // { // branchId: 6, // accountNumber: '1122334455', // name: 'حساب ونک آینده', // iban: 'IR000112233445566778899001', // }, // ], // }) // } // // Seed purchase, transfer, and sales transactions const inventories = await prisma.inventory.findMany() const products = await prisma.product.findMany({ take: 5 }) // select 5 products for demo const supplier = await prisma.supplier.findFirst() const customers = await prisma.customer.findMany({ take: 2 }) if (supplier && customers.length > 0) { PurchaseReceiptsService.prototype.create({ code: '123123', inventoryId: inventories[0].id, supplierId: supplier.id, paidAmount: 0, totalAmount: products.reduce((acc, a) => (acc += Number(a.salePrice) * 10), 0), items: products.map(product => ({ productId: product.id, count: 10, fee: Number(product.salePrice), total: 10 * Number(product.salePrice), })), }) } } main() .then(async () => { await prisma.$disconnect() }) .catch(async e => { console.error(e) await prisma.$disconnect() process.exit(1) })