Files
dkala-api/src/seeders/user-wallets.seeder.ts
T
2026-02-08 15:31:12 +03:30

37 lines
1.2 KiB
TypeScript

import type { EntityManager } from '@mikro-orm/core';
import { User } from '../modules/users/entities/user.entity';
import { Shop } from '../../../shops/entities/shop.entity';
import { WalletTransaction } from '../modules/users/entities/wallet-transaction.entity';
import { WalletTransactionReason, WalletTransactionType } from 'src/modules/users/interface/wallet';
export class UserWalletsSeeder {
async run(em: EntityManager): Promise<void> {
const users = await em.find(User, {});
const shops = await em.find(Shop, {});
for (const user of users) {
for (const shop of shops) {
// Check if wallet already exists for this user-shop combination
const existingWallet = await em.findOne(WalletTransaction, {
user: { id: user.id },
shop: { id: shop.id },
});
if (!existingWallet) {
const wallet = em.create(WalletTransaction, {
user,
shop,
balance: 150000000,
amount: 150000000,
type: WalletTransactionType.CREDIT,
reason: WalletTransactionReason.DEPOSIT,
});
em.persist(wallet);
}
}
}
await em.flush();
}
}