Files
sam-api/database/seeders/Dummy/DummyUserSeeder.php
kent be90c351fa chore(API): Seeder 파일 정리
- Dummy Seeder 파일들 정리 및 개선
- ApprovalTestDataSeeder 수정
- PositionSeeder, StockReceivingSeeder 수정

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-13 19:49:28 +09:00

91 lines
4.1 KiB
PHP

<?php
namespace Database\Seeders\Dummy;
use App\Models\Members\User;
use Database\Seeders\DummyDataSeeder;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
class DummyUserSeeder extends Seeder
{
public function run(): void
{
$tenantId = DummyDataSeeder::TENANT_ID;
$userId = DummyDataSeeder::USER_ID;
// 더미 직원 데이터 (15명)
$employees = [
['user_id' => 'EMP001', 'name' => '김철수', 'email' => 'chulsoo.kim@test.com', 'phone' => '010-1234-5678'],
['user_id' => 'EMP002', 'name' => '이영희', 'email' => 'younghee.lee@test.com', 'phone' => '010-2345-6789'],
['user_id' => 'EMP003', 'name' => '박민수', 'email' => 'minsoo.park@test.com', 'phone' => '010-3456-7890'],
['user_id' => 'EMP004', 'name' => '정은지', 'email' => 'eunji.jung@test.com', 'phone' => '010-4567-8901'],
['user_id' => 'EMP005', 'name' => '최준호', 'email' => 'junho.choi@test.com', 'phone' => '010-5678-9012'],
['user_id' => 'EMP006', 'name' => '강미래', 'email' => 'mirae.kang@test.com', 'phone' => '010-6789-0123'],
['user_id' => 'EMP007', 'name' => '임도현', 'email' => 'dohyun.lim@test.com', 'phone' => '010-7890-1234'],
['user_id' => 'EMP008', 'name' => '윤서연', 'email' => 'seoyeon.yoon@test.com', 'phone' => '010-8901-2345'],
['user_id' => 'EMP009', 'name' => '한지민', 'email' => 'jimin.han@test.com', 'phone' => '010-9012-3456'],
['user_id' => 'EMP010', 'name' => '오태양', 'email' => 'taeyang.oh@test.com', 'phone' => '010-0123-4567'],
['user_id' => 'EMP011', 'name' => '신동욱', 'email' => 'dongwook.shin@test.com', 'phone' => '010-1111-2222'],
['user_id' => 'EMP012', 'name' => '권나래', 'email' => 'narae.kwon@test.com', 'phone' => '010-2222-3333'],
['user_id' => 'EMP013', 'name' => '조성민', 'email' => 'sungmin.cho@test.com', 'phone' => '010-3333-4444'],
['user_id' => 'EMP014', 'name' => '백지훈', 'email' => 'jihun.baek@test.com', 'phone' => '010-4444-5555'],
['user_id' => 'EMP015', 'name' => '송하늘', 'email' => 'haneul.song@test.com', 'phone' => '010-5555-6666'],
];
$count = 0;
foreach ($employees as $employee) {
// 이미 존재하는지 확인
$existing = User::where('email', $employee['email'])->first();
if ($existing) {
// 이미 tenant에 연결되어 있는지 확인
$linked = DB::table('user_tenants')
->where('user_id', $existing->id)
->where('tenant_id', $tenantId)
->exists();
if (! $linked) {
DB::table('user_tenants')->insert([
'user_id' => $existing->id,
'tenant_id' => $tenantId,
'is_active' => true,
'is_default' => false,
'joined_at' => now(),
'created_at' => now(),
'updated_at' => now(),
]);
}
continue;
}
$user = User::create([
'user_id' => $employee['user_id'],
'name' => $employee['name'],
'email' => $employee['email'],
'phone' => $employee['phone'],
'password' => Hash::make('password123'),
'is_active' => true,
'created_by' => $userId,
]);
// 테넌트에 연결
DB::table('user_tenants')->insert([
'user_id' => $user->id,
'tenant_id' => $tenantId,
'is_active' => true,
'is_default' => true,
'joined_at' => now(),
'created_at' => now(),
'updated_at' => now(),
]);
$count++;
}
$this->command->info(' ✓ users: '.$count.'명 생성 (테넌트 연결 완료)');
}
}