HR
| Controllers | 13 |
| Endpoints | 81 |
| Tables | 19 |
| Screens | 19 |
| API reference | /api/ — group hr |
| OpenAPI spec | /openapi/hr.json |
URL prefixes
Endpoints belong to this module by URL, exactly as the OpenAPI group defines it in backend/src/main/java/com/motorph/payroll/config/OpenApiConfiguration.java.
/api/employees/**/api/departments/**/api/positions/**/api/timesheets/**/api/leave-requests/**/api/leave-types/**/api/leave-balances/**/api/overtime-requests/**/api/holidays/**/api/work-suspensions/**/api/announcements/**/api/recognition-awards/**/api/certificate-templates/**
Controllers
| Controller | Base path | Endpoints | GET | POST | PUT | PATCH | DELETE |
|---|---|---|---|---|---|---|---|
| AnnouncementController | /api/announcements | 7 | 2 | 1 | 1 | 2 | 1 |
| CertificateTemplateController | /api/certificate-templates | 8 | 2 | 2 | 3 | — | 1 |
| DepartmentController | /api/departments | 8 | 3 | 1 | 1 | 2 | 1 |
| EmployeeController | /api/employees | 9 | 3 | 1 | 1 | 4 | — |
| LeaveBalanceController | /api/leave-balances | 1 | 1 | — | — | — | — |
| LeaveRequestController | /api/leave-requests | 7 | 3 | 3 | — | — | 1 |
| LeaveTypeController | /api/leave-types | 1 | 1 | — | — | — | — |
| OvertimeRequestController | /api/overtime-requests | 7 | 3 | 1 | 1 | 1 | 1 |
| PhHolidayController | /api/holidays | 5 | 1 | 2 | 1 | — | 1 |
| PositionController | /api/positions | 8 | 3 | 1 | 1 | 2 | 1 |
| RecognitionAwardController | /api/recognition-awards | 7 | 5 | 1 | — | — | 1 |
| TimesheetController | /api/timesheets | 10 | 3 | 4 | 1 | 1 | 1 |
| WorkSuspensionController | /api/work-suspensions | 3 | 1 | 1 | — | — | 1 |
Across the module: 31 GET, 18 POST, 10 PUT, 12 PATCH, 10 DELETE.
Tables
Everything this module's controllers can reach through a repository, including through a shared service — so this is the upper bound of what the module touches, not the set of tables it owns. A table appearing under two modules means two modules can read it.
| Entity | Table | Columns | Tenant-scoped |
|---|---|---|---|
| Announcement | announcement | 6 | Yes |
| CertificateTemplate | certificate_template | 15 | Yes |
| CompanyProfile | company_profile | 20 | Yes |
| Department | department | 4 | Yes |
| Employee | employee | 24 | Yes |
| LeaveBalance | leave_balance | 2 | Yes |
| LeaveRequest | leave_request | 8 | Yes |
| LeaveRequestType | leave_request_type | 3 | Yes |
| OvertimeRequest | overtime_request | 6 | Yes |
| Payroll | payroll | 10 | Yes |
| PayrollChange | payroll_changes | 6 | Yes |
| PayrollSettings | payroll_settings | 71 | Yes |
| Payslip | payslip | 52 | Yes |
| PhHoliday | ph_holidays | 7 | Yes |
| Position | position | 4 | Yes |
| RecognitionAward | recognition_award | 8 | Yes |
| Timesheet | timesheet | 7 | Yes |
| User | users | 11 | — |
| WorkSuspension | work_suspensions | 5 | Yes |
Screens
Frontend routes gated by a permission this module's endpoints also require — the link between a page and its API is the permission string, not the URL.
| Route | Component | Requires |
|---|---|---|
/departments | Departments | hr.employees.manage |
/employees | Employees | hr.employees.view |
/government-forms | GovernmentForms | hr.employees.manage or payroll.manage |
/holiday-calendar | HolidayCalendar | payroll.holidays.manage or payroll.manage |
/leave-requests | LeaveRequests | hr.leave.requests.view |
/my-awards | MyAwards | employee.payslip.view |
/my-holidays | MyHolidays | employee.holidays.view |
/my-leave | MyLeave | employee.leave.history.view |
/my-overtime | MyOvertime | employee.overtime.request |
/my-payslips | MyPayslips | employee.payslip.view |
/my-profile | MyProfile | employee.profile.view |
/my-timesheet | MyTimesheet | employee.timesheet.view |
/overtime-requests | OvertimeRequests | hr.overtime.requests.view or payroll.overtime.approve |
/payroll-analytics | PayrollAnalytics | payroll.dashboard.view or payroll.manage or payroll.approve |
/payroll-runs | PayrollRuns | payroll.dashboard.view or payroll.manage or payroll.approve |
/payroll-runs/:id | PayrollRunDetail | payroll.dashboard.view or payroll.manage or payroll.approve |
/payroll-settings | PayrollSettings | payroll.settings.manage |
/positions | Positions | hr.employees.manage |
/timesheets | Timesheets | hr.timesheets.view |
This page is rebuilt from the source on every docs build by docs-site/scripts/gen-code-wiki.mjs. Editing it has no effect — change the code, or, if what you want to say is prose, write it in docs/.