<?php

namespace Database\Seeders;

/*
 * UsersRolesSeeder — выставляет роль superadmin существующему admin
 * и создаёт тестовых пользователей для каждой роли.
 * Логины: admin/editor/viewer + пароль: 1234
 */

use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class UsersRolesSeeder extends Seeder
{
    public function run(): void
    {
        // Существующий admin → superadmin
        User::where('name', 'admin')->update(['role' => 'superadmin', 'is_admin' => true]);

        $users = [
            [
                'name'     => 'manager',
                'email'    => 'manager@tocha.local',
                'role'     => 'admin',
                'is_admin' => true,
                'comment'  => 'Администратор (admin/1234)',
            ],
            [
                'name'     => 'editor',
                'email'    => 'editor@tocha.local',
                'role'     => 'editor',
                'is_admin' => true,
                'comment'  => 'Редактор (editor/1234)',
            ],
            [
                'name'     => 'viewer',
                'email'    => 'viewer@tocha.local',
                'role'     => 'viewer',
                'is_admin' => true,
                'comment'  => 'Наблюдатель (viewer/1234)',
            ],
        ];

        foreach ($users as $data) {
            User::updateOrCreate(
                ['name' => $data['name']],
                [
                    'email'    => $data['email'],
                    'password' => Hash::make('1234'),
                    'role'     => $data['role'],
                    'is_admin' => $data['is_admin'],
                ]
            );
            $this->command->info('  ' . $data['comment']);
        }
    }
}
