<?php

namespace Database\Seeders;

use App\Models\Role;
use App\Models\UserRole;
use Illuminate\Database\Seeder;

class SalesRoleSeeder extends Seeder
{
    /**
     * 영업파트너 역할 시더
     *
     * 모든 영업 담당자는 "영업파트너"라는 동일한 직위
     * 역할은 수행하는 업무를 정의
     */
    public function run(): void
    {
        $tenantId = 1; // HQ 테넌트

        $roles = [
            [
                'name' => 'sales',
                'description' => '영업파트너 - 고객 발굴, 계약 체결',
            ],
            [
                'name' => 'manager',
                'description' => '상담매니저 - 고객 상담, 인터뷰 정리',
            ],
        ];

        foreach ($roles as $roleData) {
            Role::updateOrCreate(
                [
                    'tenant_id' => $tenantId,
                    'name' => $roleData['name'],
                ],
                [
                    'description' => $roleData['description'],
                    'guard_name' => 'web',
                ]
            );
        }

        // recruiter 역할 삭제 (더 이상 사용하지 않음)
        $recruiterRole = Role::where('tenant_id', $tenantId)
            ->where('name', 'recruiter')
            ->first();

        if ($recruiterRole) {
            // 해당 역할을 가진 user_roles 강제 삭제 (soft delete 포함)
            UserRole::withTrashed()
                ->where('role_id', $recruiterRole->id)
                ->forceDelete();
            $this->command->info('recruiter 역할 할당이 삭제되었습니다.');

            // 역할 강제 삭제
            $recruiterRole->forceDelete();
            $this->command->info('recruiter 역할이 삭제되었습니다.');
        }

        $this->command->info('영업파트너 역할이 생성되었습니다: sales, manager');
    }
}
