• File: AccountsSeeder.php
  • Full Path: /var/www/html/back/database/seeders/AccountsSeeder.php
  • File size: 1.22 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

declare(strict_types=1);

namespace Database\Seeders;

use App\Domain\Account\AccountService;
use App\Domain\Account\Requests\CreateAccountRequest;
use App\Enums\ModelsEnum;
use App\Models\Organization;
use Illuminate\Database\Seeder;

class AccountsSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        /** @var AccountService $service */
        $service = app()->make(AccountService::class);
        foreach (ModelsEnum::cases() as $case) {
            Organization::query()->where('model_id', $case->value)
                ->each(function (Organization $model) use ($service): void {
                    $service->createAccount($model->model_id, new CreateAccountRequest(
                        [
                            'name' => 'Счет для организации ' . $model->full_name,
                            'organization_id' => $model->id,
                            'deposit' => random_int(10000, 100000000) / 100,
                            'added' => fake()->dateTimeBetween('-5 days', '+5 days'),
                            'bank_id' =>  random_int(1, 3),
                        ]
                    ));
                });
        }
    }
}