---
tags: [hr, model]
module: HR
---

# Employee

## Connections
[[_HR]] · [[[Model]Position]] · [[[Model]PayrollEntry]] · [[[Model]Account]] · [[[Repo]Repositories]] · [[[Controller]EmployeesController]] · [[[Service]EmployeeServices]] · [[[DB]DatabaseTables]]

## Source
```
Modules/HR/Models/Employee.php
Modules/HR/Models/EmployeePosition.php
```

## Responsibilities
- Stores employee personal data + links to an Accounting cost account
- `EmployeePosition` is the pivot — stores salary + effective_date per assignment
- `latestPosition` eager-loaded on every Employee fetch

## Key Relationships

| Relation | Type | Target |
|---|---|---|
| costAccount | belongsTo | [[[Model]Account]] (`cost_account_id` → Accounting) |
| positions | belongsToMany (pivot: salary) | [[[Model]Position]] |
| employeePositions | hasMany | EmployeePosition (pivot model) |
| latestEmployeePosition | hasOne (latest by effective_date) | EmployeePosition |
| PayrollEntryDetail.employee | belongsTo | Employee |

## Traits
`AuditableTrait` · `SoftDeletes` · `UsesTenantConnection`
