<?php

namespace Database\Seeders;

use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
use Str;

class BankSeeder extends Seeder
{
    public function run()
    {
        $banks = [
            ['name' => 'Fidelity Bank', 'oneapp_code' => '000007', 'paystack_code' => '070', 'monnify_code' => '070', 'safeheaven_code' => '000007', 'fintava_short_code' => '000007', 'bani_code' => '000007', 'bani_list_code' => 'NGPROV', 'kora_code' => '070', 'status' => 1],
            ['name' => 'GTBank', 'oneapp_code' => '000013', 'paystack_code' => '058', 'monnify_code' => '058', 'safeheaven_code' => '000013', 'fintava_short_code' => '000013', 'bani_code' => '000013', 'bani_list_code' => 'NGPROV', 'kora_code' => '315', 'status' => 1],
            ['name' => 'Keystone Bank', 'oneapp_code' => '000002', 'paystack_code' => '082', 'monnify_code' => '082', 'safeheaven_code' => '000002', 'fintava_short_code' => '000002', 'bani_code' => '000002', 'bani_list_code' => 'NGPROV', 'kora_code' => '082', 'status' => 1],
            ['name' => 'Access Bank', 'oneapp_code' => '000014', 'paystack_code' => '044', 'monnify_code' => '044', 'safeheaven_code' => '000014', 'fintava_short_code' => '000014', 'bani_code' => '000014', 'bani_list_code' => 'NGPROV', 'kora_code' => '044', 'status' => 1],
            ['name' => 'ALAT by Wema', 'oneapp_code' => '000017', 'paystack_code' => '035A', 'monnify_code' => '090297', 'safeheaven_code' => '000017', 'fintava_short_code' => '000017', 'bani_code' => '000017', 'bani_list_code' => 'NGPROV', 'kora_code' => '035', 'status' => 0],
            ['name' => 'First Bank of Nigeria', 'oneapp_code' => '000016', 'paystack_code' => '011', 'monnify_code' => '011', 'safeheaven_code' => '000016', 'fintava_short_code' => '000016', 'bani_code' => '000016', 'bani_list_code' => 'NGPROV', 'kora_code' => '011', 'status' => 1],

            ['name' => 'FCMB', 'oneapp_code' => '000003', 'paystack_code' => '214', 'monnify_code' => '214', 'safeheaven_code' => '000003', 'fintava_short_code' => '090409', 'bani_code' => '100031', 'bani_list_code' => 'NGPROV', 'kora_code' => '100031'],
            ['name' => 'Globus Bank', 'oneapp_code' => '000027', 'paystack_code' => '00103', 'monnify_code' => '00103', 'safeheaven_code' => '000027', 'fintava_short_code' => '000027', 'bani_code' => '000027', 'bani_list_code' => 'NGPROV', 'kora_code' => '103'],
            ['name' => 'Heritage Bank', 'oneapp_code' => '000020', 'paystack_code' => '030', 'monnify_code' => '030', 'safeheaven_code' => '000020', 'fintava_short_code' => '000020', 'bani_code' => '000020', 'bani_list_code' => 'NGPROV', 'kora_code' => '030'],
            ['name' => 'Jaiz Bank', 'oneapp_code' => '000006', 'paystack_code' => '301', 'monnify_code' => '301', 'safeheaven_code' => '000006', 'fintava_short_code' => '000006', 'bani_code' => '000006', 'bani_list_code' => 'NGPROV', 'kora_code' => '301', 'status' => 1],
            ['name' => 'Kuda Bank', 'oneapp_code' => '090267', 'paystack_code' => '50211', 'monnify_code' => '50211', 'safeheaven_code' => '090267', 'fintava_short_code' => '090267', 'bani_code' => '090267', 'bani_list_code' => 'NGPROV', 'kora_code' => '50211', 'status' => 1],
            ['name' => 'PAGA', 'oneapp_code' => '100002', 'paystack_code' => '100002', 'monnify_code' => '100002', 'safeheaven_code' => '100002', 'fintava_short_code' => '100002', 'bani_code' => '100002', 'bani_list_code' => 'NGPROV', 'kora_code' => '916', 'status' => 1],
            ['name' => 'PalmPay', 'oneapp_code' => '100033', 'paystack_code' => '999991', 'monnify_code' => '100033', 'safeheaven_code' => '100033', 'fintava_short_code' => '100033', 'bani_code' => '100033', 'bani_list_code' => 'NGPROV', 'kora_code' => '100033', 'status' => 1],
            ['name' => 'Providus Bank', 'oneapp_code' => '000023', 'paystack_code' => '101', 'monnify_code' => '101', 'safeheaven_code' => '000023', 'fintava_short_code' => '000023', 'bani_code' => '000023', 'bani_list_code' => 'NGPROV', 'kora_code' => '101', 'status' => 1],
            ['name' => 'Polaris Bank', 'oneapp_code' => '000008', 'paystack_code' => '076', 'monnify_code' => '076', 'safeheaven_code' => '000008', 'fintava_short_code' => '000008', 'bani_code' => '000008', 'bani_list_code' => 'NGPROV', 'kora_code' => '076', 'status' => 1],
            ['name' => 'Stanbic IBTC Bank', 'oneapp_code' => '000012', 'paystack_code' => '221', 'monnify_code' => '221', 'safeheaven_code' => '000012', 'fintava_short_code' => '000012', 'bani_code' => '000012', 'bani_list_code' => 'NGPROV', 'kora_code' => '221', 'status' => 1],
            ['name' => 'Standard Chartered Bank', 'oneapp_code' => '000021', 'paystack_code' => '068', 'monnify_code' => '068', 'safeheaven_code' => '000021', 'fintava_short_code' => '000021', 'bani_code' => '000021', 'bani_list_code' => 'NGPROV', 'kora_code' => '068', 'status' => 1],
            ['name' => 'Sterling Bank', 'oneapp_code' => '000001', 'paystack_code' => '232', 'monnify_code' => '232', 'safeheaven_code' => '000001', 'fintava_short_code' => '000001', 'bani_code' => '000001', 'bani_list_code' => 'NGPROV', 'kora_code' => '232', 'status' => 1],
            ['name' => 'Union Bank', 'oneapp_code' => '000018', 'paystack_code' => '032', 'monnify_code' => '032', 'safeheaven_code' => '000018', 'fintava_short_code' => '000018', 'bani_code' => '000018', 'bani_list_code' => 'NGPROV', 'kora_code' => '032', 'status' => 1],
            ['name' => 'UBA', 'oneapp_code' => '000004', 'paystack_code' => '033', 'monnify_code' => '033', 'safeheaven_code' => '000004', 'fintava_short_code' => '000004', 'bani_code' => '000004', 'bani_list_code' => 'NGPROV', 'kora_code' => '033', 'status' => 1],

            ['name' => 'Unity Bank', 'oneapp_code' => '000011', 'paystack_code' => '215', 'monnify_code' => '215', 'safeheaven_code' => '000011', 'fintava_short_code' => '000011', 'bani_code' => '000011', 'bani_list_code' => 'NGPROV', 'kora_code' => '215', 'status' => 1],
            ['name' => 'VFD Microfinance Bank', 'oneapp_code' => '090110', 'paystack_code' => '566', 'monnify_code' => '566', 'safeheaven_code' => '090110', 'fintava_short_code' => '090110', 'bani_code' => '090110', 'bani_list_code' => 'NGPROV', 'kora_code' => '566', 'status' => 1],
            ['name' => 'Wema Bank', 'oneapp_code' => '000017', 'paystack_code' => '035', 'monnify_code' => '035', 'safeheaven_code' => '000017', 'fintava_short_code' => '000017', 'bani_code' => '000017', 'bani_list_code' => 'NGPROV', 'kora_code' => '035', 'status' => 0],
            ['name' => 'Zenith Bank', 'oneapp_code' => '000015', 'paystack_code' => '057', 'monnify_code' => '057', 'safeheaven_code' => '000015', 'fintava_short_code' => '000015', 'bani_code' => '000015', 'bani_list_code' => 'NGPROV', 'kora_code' => '057', 'status' => 1],
            ['name' => '9 Payment Service Bank', 'oneapp_code' => '120001', 'paystack_code' => '120001', 'monnify_code' => '120001', 'safeheaven_code' => '120001', 'fintava_short_code' => '120001', 'bani_code' => '120001', 'bani_list_code' => 'NGPROV', 'kora_code' => '120001', 'status' => 0],
            ['name' => 'Opay', 'oneapp_code' => '100004', 'paystack_code' => '999992', 'monnify_code' => '305', 'safeheaven_code' => '100004', 'fintava_short_code' => '100004', 'bani_code' => '100004', 'bani_list_code' => 'NGPROV', 'kora_code' => '305', 'status' => 1],

            // Add the remaining banks up to 30
        ];

        foreach ($banks as $bank) {
            DB::table('banks')->insert(array_merge($bank, [
                'id' => (string) Str::uuid(),
                'created_at' => Carbon::now(),
                'updated_at' => Carbon::now(),
            ]));
        }
    }
}
