Training Programs (البرامج التدريبية)
Define training programs by category — technical, soft skills, compliance, leadership, safety, onboarding — with duration and mandatory flags.
Attributes
| Field | Type | Description |
|---|---|---|
id | integer | Primary key |
name_en | string | English name |
name_ar | string | Arabic name (nullable) |
category | enum | technical, soft_skills, compliance, leadership, safety, onboarding |
description | text | Program description (nullable) |
duration_hours | integer | Total duration in hours |
is_mandatory | boolean | Mandatory for all employees |
is_active | boolean | Active status |
API Endpoints
| Method | URL | Description |
|---|---|---|
GET | /api/hr/training-programs | List programs |
POST | /api/hr/training-programs | Create program |
GET | /api/hr/training-programs/{id} | Show program with sessions |
PUT | /api/hr/training-programs/{id} | Update program |
DELETE | /api/hr/training-programs/{id} | Delete program |
Examples
bash
curl -X POST "https://moon-erp.elbaset.com/api/hr/training-programs" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name_ar": "تدريب السلامة المهنية",
"name_en": "Workplace Safety Training",
"category": "safety",
"duration_hours": 8,
"is_mandatory": true,
"description": "Annual safety compliance training"
}'dart
final response = await dio.post('/api/hr/training-programs', data: {
'name_ar': 'تدريب السلامة المهنية',
'name_en': 'Workplace Safety Training',
'category': 'safety',
'duration_hours': 8,
'is_mandatory': true,
});Business Rules
- Programs have multiple training sessions (scheduled instances)
- Show endpoint eager-loads all sessions
- Mandatory programs can be tracked for compliance reporting