Initial import of AbelBirdNest Stock
This commit is contained in:
222
scripts/seed-banks-indonesia.mjs
Normal file
222
scripts/seed-banks-indonesia.mjs
Normal file
@ -0,0 +1,222 @@
|
||||
import { PrismaClient } from "@prisma/client";
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
|
||||
const banks = [
|
||||
["002", "Bank Rakyat Indonesia (Persero) Tbk"],
|
||||
["008", "Bank Mandiri (Persero) Tbk"],
|
||||
["009", "Bank Negara Indonesia (Persero) Tbk"],
|
||||
["014", "Bank Central Asia Tbk"],
|
||||
["019", "Bank Panin Tbk"],
|
||||
["022", "Bank CIMB Niaga Tbk"],
|
||||
["023", "Bank UOB Indonesia"],
|
||||
["026", "Bank Lippo"],
|
||||
["028", "Bank OCBC NISP Tbk"],
|
||||
["030", "American Express Bank"],
|
||||
["031", "Citibank N.A."],
|
||||
["032", "JP. Morgan Chase Bank NA"],
|
||||
["033", "Bank of America N.A."],
|
||||
["034", "ING Indonesia Bank"],
|
||||
["036", "Bank Ekspor Indonesia"],
|
||||
["037", "Bank Artha Graha Int'l"],
|
||||
["039", "Bank Credit Agricole Indosuez"],
|
||||
["040", "The Bank of Hongkong & Shanghai B.C. (Hongkong)"],
|
||||
["041", "The Bank of Tokyo Mitsubishi UFJ"],
|
||||
["042", "Bank Sumitomo Mitsui Indonesia"],
|
||||
["045", "Bank Sumitomo Mitsui Indonesia"],
|
||||
["046", "Bank DBS Indonesia"],
|
||||
["047", "Bank Resona Perdania"],
|
||||
["048", "Bank Mizuho Indonesia"],
|
||||
["050", "Standard Chartered Bank"],
|
||||
["052", "Bank ABN Amro"],
|
||||
["053", "Bank Keppel Tatlee Buana"],
|
||||
["054", "Bank Capital Indonesia"],
|
||||
["057", "Bank BNP Paribas Indonesia"],
|
||||
["059", "Korea Exchange Bank Danamon"],
|
||||
["061", "ANZ Indonesia"],
|
||||
["067", "Deutsche Bank AG"],
|
||||
["068", "Bank Woori Indonesia"],
|
||||
["069", "Bank of China"],
|
||||
["076", "Bank Bumi Arta"],
|
||||
["089", "Bank IFI"],
|
||||
["093", "Bank Jtrust"],
|
||||
["097", "Bank Haja"],
|
||||
["110", "Bank Jabar Banten (BJB)"],
|
||||
["111", "Bank DKI"],
|
||||
["112", "Bank Pembangunan Daerah Daerah Istimewa Yogyakarta"],
|
||||
["113", "Bank Jateng"],
|
||||
["114", "Bank Jatim"],
|
||||
["115", "Bank Jambi"],
|
||||
["116", "Bank Aceh"],
|
||||
["117", "Bank Sumut"],
|
||||
["118", "Bank Nagari"],
|
||||
["119", "Bank Riau Kepri"],
|
||||
["120", "Bank Sumsel Babel"],
|
||||
["121", "Bank Lampung"],
|
||||
["122", "Bank Kalsel"],
|
||||
["123", "Bank Kaltimtara"],
|
||||
["124", "Bank Kaltim & Utara"],
|
||||
["125", "Bank Kalteng"],
|
||||
["126", "Bank Sulselbar"],
|
||||
["127", "Bank SulutGo"],
|
||||
["128", "Bank NTB Syariah"],
|
||||
["129", "Bank Bali"],
|
||||
["130", "Bank NTT"],
|
||||
["131", "Bank Maluku Malut"],
|
||||
["132", "Bank Papua"],
|
||||
["133", "Bank Bengkulu"],
|
||||
["134", "Bank Sulselbar"],
|
||||
["135", "Bank Sultra"],
|
||||
["136", "Bank Sulawesi Tenggara"],
|
||||
["137", "Bank Sulawesi Tengah"],
|
||||
["138", "Bank Sulawesi Selatan"],
|
||||
["139", "Bank Sulawesi Utara"],
|
||||
["141", "Bank Kalteng (Kaltimtara)"],
|
||||
["147", "Bank Muamalat Indonesia"],
|
||||
["145", "Bank Nusantara Parahyangan"],
|
||||
["146", "Bank of India Indonesia"],
|
||||
["151", "Bank Mestika Dharma"],
|
||||
["152", "Shinhan Bank Indonesia (Metro Express)"],
|
||||
["153", "Bank Sinarmas"],
|
||||
["157", "Bank Maspion"],
|
||||
["159", "Bank Hagakita"],
|
||||
["161", "Bank Ganesha"],
|
||||
["162", "Bank Windu Kentjana"],
|
||||
["166", "Bank ICBC Indonesia (Halim Indonesia Bank)"],
|
||||
["167", "Bank QNB Indonesia (QNB Kesawan)"],
|
||||
["171", "Bank of Tokyo Mitsubishi UFJ Indonesia"],
|
||||
["176", "Bank QNB Indonesia"],
|
||||
["186", "Bank Agris"],
|
||||
["213", "Bank Tabungan Pensiunan Nasional (BTPN)"],
|
||||
["200", "Bank Tabungan Negara (BTN)"],
|
||||
["203", "Bank Bumi Arta"],
|
||||
["213", "BTPN/Jenius BTPN"],
|
||||
["216", "Bank Artha Graha International"],
|
||||
["240", "Bank Victoria International"],
|
||||
["244", "Bank Index Selindo"],
|
||||
["245", "Bank Kesejahteraan Ekonomi"],
|
||||
["246", "Bank Harfa"],
|
||||
["247", "Bank Artos Indonesia"],
|
||||
["251", "Prima Master Bank"],
|
||||
["252", "Bank Persyarikatan Indonesia"],
|
||||
["253", "Liman International Bank"],
|
||||
["254", "Bank Dipo International (Sahabat Sampoerna)"],
|
||||
["255", "Bank Fama Internasional"],
|
||||
["256", "Bank Kesehatan Bumi Arta"],
|
||||
["257", "Bank Mayora Indonesia"],
|
||||
["258", "Bank Royal Indonesia"],
|
||||
["259", "Centratama Nasional Bank"],
|
||||
["261", "Bank Indonesia"],
|
||||
["262", "Bank Multika"],
|
||||
["263", "Bank Permata"],
|
||||
["267", "Bank Raya Indonesia"],
|
||||
["273", "Bank Nusantara Parahyangan Syariah"],
|
||||
["274", "Bank Jasa Jakarta"],
|
||||
["275", "Bank Alfindo"],
|
||||
["282", "Bank Yudha Bhakti"],
|
||||
["283", "Bank MNC"],
|
||||
["285", "Bank Bintang Manunggal"],
|
||||
["286", "Bank Haga"],
|
||||
["287", "Bank Mega"],
|
||||
["294", "Bank Bisnis Internasional"],
|
||||
["295", "Bank Sri Partha"],
|
||||
["422", "BRI Syariah (migrasi ke BSI)"],
|
||||
["423", "BCA Syariah"],
|
||||
["425", "Bank BJB Syariah"],
|
||||
["426", "Bank Mega"],
|
||||
["427", "Bank Syariah Mandiri / BNI Syariah"],
|
||||
["431", "Bank BTPN Syariah"],
|
||||
["451", "Bank Syariah Indonesia"],
|
||||
["453", "Bank BPD Kaltim"],
|
||||
["454", "Bank Jatim Syariah"],
|
||||
["456", "Bank Nusantara Parahyangan Syariah"],
|
||||
["503", "Bank Agris"],
|
||||
["506", "Bank Sinarmas Syariah"],
|
||||
["510", "Prima Master Bank"],
|
||||
["513", "Bank Ina Perdana"],
|
||||
["517", "Bank Harfa"],
|
||||
["521", "Bank Akita"],
|
||||
["526", "Liman International Bank"],
|
||||
["531", "Anglomas Internasional Bank"],
|
||||
["535", "Bank Kesejahteraan"],
|
||||
["536", "BCA Syariah"],
|
||||
["542", "Artos Indonesia Bank"],
|
||||
["547", "Bank Purba Danarta"],
|
||||
["548", "Bank Multi Arta Sentosa"],
|
||||
["550", "Bank Andara"],
|
||||
["553", "Mayora Bank"],
|
||||
["555", "Bank Victoria International"],
|
||||
["562", "Bank Fama International"],
|
||||
["564", "Bank Mandiri Taspen Pos"],
|
||||
["566", "Bank Victoria International"],
|
||||
["567", "Bank Harda"],
|
||||
["688", "BPR KS"],
|
||||
["761", "Bank Rakyat Indonesia"],
|
||||
["789", "Indosat Dompetku"],
|
||||
["811", "BPR Bank Indonesia"],
|
||||
["836", "Bank OCBC NISP"],
|
||||
["911", "Link Aja"],
|
||||
["949", "Bank CTBC (China Trust) Indonesia"],
|
||||
["950", "Bank Commonwealth"],
|
||||
["956", "Bank Merincorp"],
|
||||
["957", "Bank Diners Club"],
|
||||
["985", "The Royal Bank"],
|
||||
["988", "Bank Swaguna"],
|
||||
["989", "Bank QNB Indonesia"],
|
||||
["990", "Bank Swaguna"],
|
||||
["992", "Bank Himpunan Saudara"],
|
||||
["993", "Bank Jasa Jakarta"],
|
||||
["994", "Bank Swaguna"]
|
||||
];
|
||||
|
||||
function toRecords(list) {
|
||||
const byCode = new Map();
|
||||
const byName = new Set();
|
||||
|
||||
for (const [code, name] of list) {
|
||||
const trimmedCode = String(code).trim().padStart(3, "0");
|
||||
const trimmedName = String(name).trim();
|
||||
if (!trimmedCode || !trimmedName) continue;
|
||||
const normalizedName = trimmedName.toUpperCase();
|
||||
|
||||
if (!byCode.has(trimmedCode) && !byName.has(normalizedName)) {
|
||||
byCode.set(trimmedCode, trimmedName);
|
||||
byName.add(normalizedName);
|
||||
}
|
||||
}
|
||||
return [...byCode.entries()].map(([code, name]) => ({ code, name, address: "Indonesia" }));
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const records = toRecords(banks);
|
||||
let created = 0;
|
||||
let updated = 0;
|
||||
|
||||
for (const record of records) {
|
||||
const current = await prisma.bank.findUnique({ where: { code: record.code } });
|
||||
if (current) {
|
||||
await prisma.bank.update({
|
||||
where: { code: record.code },
|
||||
data: { name: record.name, address: record.address, status: "ACTIVE" }
|
||||
});
|
||||
updated += 1;
|
||||
} else {
|
||||
await prisma.bank.create({
|
||||
data: { code: record.code, name: record.name, address: record.address, status: "ACTIVE" }
|
||||
});
|
||||
created += 1;
|
||||
}
|
||||
}
|
||||
|
||||
const total = await prisma.bank.count();
|
||||
console.log(`Seeded banks: created=${created}, updated=${updated}, total=${total}`);
|
||||
}
|
||||
|
||||
main()
|
||||
.catch((error) => {
|
||||
console.error(error);
|
||||
process.exitCode = 1;
|
||||
})
|
||||
.finally(async () => {
|
||||
await prisma.$disconnect();
|
||||
});
|
||||
Reference in New Issue
Block a user