## 모델 개선 - Leave: userProfile relation 추가 - Salary: userProfile relation 추가 - TenantUserProfile: department, position 관계 및 label accessor 추가 ## 서비스 개선 - LeaveService: userProfile eager loading 추가 - SalaryService: 사원 정보 조회 개선 - CardService: 관계 정리 및 개선 - AttendanceService: 조회 기능 개선 ## 시더 - DummySalarySeeder 추가 - DummyCardSeeder 멀티테넌트 지원 개선 - DummyDataSeeder에 급여 시더 등록 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
96 lines
3.4 KiB
PHP
96 lines
3.4 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->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'],
|
|
['기타', 'popups', '8'],
|
|
['기타', 'payments', '13'],
|
|
['', '총계', '~950'],
|
|
]
|
|
);
|
|
}
|
|
}
|