Files
sam-api/database/seeders/DummyDataSeeder.php
kent bdb7460bfa feat: 품목(Item) 더미 데이터 시더 추가
- DummyItemSeeder.php 생성: 10,000개 품목 더미 데이터
  - FG(완제품) 2,000개, PT(부품) 3,000개
  - SM(부자재) 2,000개, RM(원자재) 2,000개, CS(소모품) 1,000개
- 1,000개씩 배치 삽입으로 성능 최적화
- 타입별 속성(attributes) 자동 생성
- DummyDataSeeder에 품목 시더 등록

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-30 09:43:20 +09:00

112 lines
3.9 KiB
PHP

<?php
// database/seeders/DummyDataSeeder.php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
class DummyDataSeeder extends Seeder
{
// 대상 테넌트 ID
public const TENANT_ID = 287;
// 생성자 사용자 ID
public const USER_ID = 1;
public function run(): void
{
$this->command->info('🌱 더미 데이터 시딩 시작...');
$this->command->info(' 대상 테넌트: ID '.self::TENANT_ID);
// 1. 기본 데이터 (순서 중요)
$this->command->info('');
$this->command->info('📦 기본 데이터 생성...');
$this->call([
Dummy\DummyUserSeeder::class, // HR용 사용자
Dummy\DummyDepartmentSeeder::class, // 부서
Dummy\DummyClientGroupSeeder::class,
Dummy\DummyBankAccountSeeder::class,
Dummy\DummyClientSeeder::class,
]);
// 2. 회계 데이터
$this->command->info('');
$this->command->info('💰 회계 데이터 생성...');
$this->call([
Dummy\DummyDepositSeeder::class,
Dummy\DummyWithdrawalSeeder::class,
Dummy\DummySaleSeeder::class,
Dummy\DummyPurchaseSeeder::class,
Dummy\DummyBadDebtSeeder::class, // 악성채권
Dummy\DummyBillSeeder::class, // 어음
]);
// 3. HR 데이터
$this->command->info('');
$this->command->info('👥 HR 데이터 생성...');
$this->call([
Dummy\DummyWorkSettingSeeder::class, // 근무 설정
Dummy\DummyAttendanceSettingSeeder::class, // 근태 설정
Dummy\DummyAttendanceSeeder::class, // 근태
Dummy\DummyLeaveGrantSeeder::class, // 휴가 부여
Dummy\DummyLeaveSeeder::class, // 휴가
Dummy\DummyCardSeeder::class, // 법인카드
Dummy\DummySalarySeeder::class, // 급여
]);
// 4. 결재 데이터
$this->call([
ApprovalTestDataSeeder::class,
]);
// 5. 품목 데이터
$this->command->info('');
$this->command->info('📦 품목 데이터 생성...');
$this->call([
Dummy\DummyItemSeeder::class,
]);
// 6. 기타 데이터
$this->command->info('');
$this->command->info('📋 기타 데이터 생성...');
$this->call([
Dummy\DummyPopupSeeder::class,
Dummy\DummyPaymentSeeder::class,
]);
$this->command->info('');
$this->command->info('✅ 더미 데이터 시딩 완료!');
$this->command->table(
['카테고리', '테이블', '생성 수량'],
[
['기본', 'users', '15'],
['기본', 'departments', '11'],
['기본', 'client_groups', '5'],
['기본', 'bank_accounts', '5'],
['기본', 'clients', '20'],
['회계', 'deposits', '60'],
['회계', 'withdrawals', '60'],
['회계', 'sales', '80'],
['회계', 'purchases', '70'],
['회계', 'bad_debts', '18'],
['회계', 'bills', '30'],
['HR', 'work_settings', '1'],
['HR', 'attendance_settings', '1'],
['HR', 'attendances', '~300'],
['HR', 'leave_grants', '~200'],
['HR', 'leaves', '~50'],
['HR', 'cards', '5'],
['HR', 'salaries', '15'],
['결재', 'approval_forms', '3'],
['결재', 'approvals', '20'],
['결재', 'approval_steps', '~40'],
['품목', 'items', '10,000'],
['기타', 'popups', '8'],
['기타', 'payments', '13'],
['', '총계', '~11,010'],
]
);
}
}