<?php

namespace Database\Seeders;

use App\Models\Bank;
use Illuminate\Database\Seeder;

class BankSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * Lista baseada nos códigos de compensação (COMPE) da FEBRABAN.
     */
    public function run(): void
    {
        $banks = [
            ['code' => '001', 'name' => 'Banco do Brasil S.A.'],
            ['code' => '003', 'name' => 'Banco da Amazônia S.A.'],
            ['code' => '004', 'name' => 'Banco do Nordeste do Brasil S.A.'],
            ['code' => '021', 'name' => 'Banestes S.A. Banco do Estado do Espírito Santo'],
            ['code' => '025', 'name' => 'Banco Alfa S.A.'],
            ['code' => '033', 'name' => 'Banco Santander (Brasil) S.A.'],
            ['code' => '036', 'name' => 'Banco Bradesco BBI S.A.'],
            ['code' => '037', 'name' => 'Banco do Estado do Pará S.A. (Banpará)'],
            ['code' => '041', 'name' => 'Banco do Estado do Rio Grande do Sul S.A. (Banrisul)'],
            ['code' => '047', 'name' => 'Banco do Estado de Sergipe S.A. (Banese)'],
            ['code' => '070', 'name' => 'BRB - Banco de Brasília S.A.'],
            ['code' => '077', 'name' => 'Banco Inter S.A.'],
            ['code' => '082', 'name' => 'Banco Topázio S.A.'],
            ['code' => '085', 'name' => 'Cooperativa Central de Crédito Ailos'],
            ['code' => '102', 'name' => 'XP Investimentos CCTVM S.A.'],
            ['code' => '104', 'name' => 'Caixa Econômica Federal'],
            ['code' => '121', 'name' => 'Banco Agibank S.A.'],
            ['code' => '133', 'name' => 'Cresol Confederação'],
            ['code' => '136', 'name' => 'Unicred do Brasil'],
            ['code' => '197', 'name' => 'Stone Pagamentos S.A.'],
            ['code' => '208', 'name' => 'Banco BTG Pactual S.A.'],
            ['code' => '212', 'name' => 'Banco Original S.A.'],
            ['code' => '218', 'name' => 'Banco BS2 S.A.'],
            ['code' => '237', 'name' => 'Banco Bradesco S.A.'],
            ['code' => '246', 'name' => 'Banco ABC Brasil S.A.'],
            ['code' => '260', 'name' => 'Nu Pagamentos S.A. (Nubank)'],
            ['code' => '290', 'name' => 'PagSeguro Internet S.A. (PagBank)'],
            ['code' => '318', 'name' => 'Banco BMG S.A.'],
            ['code' => '323', 'name' => 'Mercado Pago Instituição de Pagamento Ltda.'],
            ['code' => '336', 'name' => 'Banco C6 S.A.'],
            ['code' => '341', 'name' => 'Itaú Unibanco S.A.'],
            ['code' => '348', 'name' => 'Banco XP S.A.'],
            ['code' => '380', 'name' => 'PicPay Instituição de Pagamento S.A.'],
            ['code' => '389', 'name' => 'Banco Mercantil do Brasil S.A.'],
            ['code' => '422', 'name' => 'Banco Safra S.A.'],
            ['code' => '473', 'name' => 'Banco Caixa Geral - Brasil S.A.'],
            ['code' => '536', 'name' => 'Neon Pagamentos S.A.'],
            ['code' => '623', 'name' => 'Banco PAN S.A.'],
            ['code' => '655', 'name' => 'Banco BV S.A. (Votorantim)'],
            ['code' => '707', 'name' => 'Banco Daycoval S.A.'],
            ['code' => '739', 'name' => 'Banco Cetelem S.A.'],
            ['code' => '743', 'name' => 'Banco Semear S.A.'],
            ['code' => '745', 'name' => 'Banco Citibank S.A.'],
            ['code' => '746', 'name' => 'Banco Modal S.A.'],
            ['code' => '748', 'name' => 'Banco Cooperativo Sicredi S.A.'],
            ['code' => '756', 'name' => 'Banco Cooperativo Sicoob S.A.'],
        ];

        foreach ($banks as $bank) {
            Bank::updateOrCreate(
                ['code' => $bank['code']],
                [
                    'name'   => $bank['name'],
                    'active' => true,
                ]
            );
        }
    }
}
