# Hướng dẫn chạy Database Seeders

## Yêu cầu hệ thống
- PHP >= 8.2.0
- Laravel Framework
- Database đã được migrate

## Các bước thực hiện

### 1. Kiểm tra phiên bản PHP
```bash
php --version
```
Đảm bảo PHP >= 8.2.0

### 2. Cài đặt dependencies (nếu cần)
```bash
composer install
```

### 3. Chạy migrations (nếu chưa chạy)
```bash
php artisan migrate
```

### 4. Chạy seeders

#### Chạy tất cả seeders
```bash
php artisan db:seed
```

#### Chạy từng seeder riêng lẻ
```bash
# Tạo roles và permissions
php artisan db:seed --class=RolePermissionSeeder

# Tạo users
php artisan db:seed --class=UserSeeder

# Tạo employee data
php artisan db:seed --class=EmployeeSeeder

# Tạo expense categories
php artisan db:seed --class=ExpenseCategorySeeder

# Tạo job postings
php artisan db:seed --class=JobPostingSeeder

# Tạo notices
php artisan db:seed --class=NoticeSeeder

# Tạo attendance data
php artisan db:seed --class=AttendanceSeeder

# Tạo leave requests
php artisan db:seed --class=LeaveRequestSeeder

# Tạo expenses
php artisan db:seed --class=ExpenseSeeder

# Tạo tasks
php artisan db:seed --class=TaskSeeder
```

### 5. Reset và seed lại (nếu cần)
```bash
php artisan migrate:fresh --seed
```

## Kiểm tra kết quả

### Kiểm tra users
```bash
php artisan tinker
```
```php
User::with('roles')->get();
```

### Kiểm tra employees
```php
Employee::all();
```

### Kiểm tra permissions
```php
Permission::all();
```

## Thông tin đăng nhập mẫu

| Role | Email | Password |
|------|-------|----------|
| Admin | admin@hrm.com | 123456789 |
| HR | hr@hrm.com | 123456789 |
| IT Manager | it.manager@hrm.com | 123456789 |
| Sales Manager | sales.manager@hrm.com | 123456789 |
| Finance Manager | finance.manager@hrm.com | 123456789 |
| Employee | lan.nguyen@hrm.com | 123456789 |

## Xử lý lỗi thường gặp

### Lỗi PHP version
- Cập nhật PHP lên phiên bản >= 8.2.0
- Hoặc chạy: `composer install --ignore-platform-reqs`

### Lỗi duplicate key
- Chạy `php artisan migrate:fresh --seed` để reset database

### Lỗi foreign key constraint
- Đảm bảo chạy seeders theo đúng thứ tự
- Hoặc chạy `php artisan db:seed` để chạy tất cả theo thứ tự đã định

## Cấu trúc dữ liệu được tạo

- **16 Users** với các role khác nhau
- **16 Employee records** với thông tin chi tiết
- **5 Roles** với permissions phù hợp
- **50+ Permissions** chi tiết
- **10 Expense categories**
- **10 Job postings**
- **10 Notices**
- **~600 Attendance records** (30 ngày)
- **50 Leave requests**
- **100 Expenses**
- **80 Tasks**


# DB dưới local

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=hrm_management
DB_USERNAME=root
DB_PASSWORD=

# DB trên serve

DB_CONNECTION=mysql
DB_HOST=103.90.225.162
DB_PORT=3306
DB_DATABASE=lvtglob2_nhansu
DB_USERNAME=lvtglob2_quangnv
DB_PASSWORD=quangnv@



# các quy định phạt đã check
# đi muộn về sớm 3 lần miễn phạt, lần thứ 4 mới bắt đầu tính phạt có thể config trong cấu hình 
# quên chấm công cũng được miễn có thể config trong cấu hình  
