Data Design
Please read the HCSS Terminology Guide if you have not yet. Data at HCSS is generally divided into 3 levels: company-wide, business-unit-specific, and job-specific. For example, when selecting an employee from a list, it may be useful to show only employees who are working on a particular job. (i.e., a job-specific employee). Employees are available at a company-wide, business-unit, and job level. (as are equipment).
Other resources may only exist at one or two levels. For example, materials exist at the business-unit and job levels only. Pay classes have a company-wide and a business-unit-specific representation. Cost codes only exist at the job level.
Different fields may be available at each level. For example, with materials, the material code is shared across a business unit, but the unit cost may be overridden for each job. (so the unit cost field is only available at the job-level, and the material code is only writable at the business-unit-level)
This design provides some flexibility, but can be a little bit complex. We've designed the APIs so that it is generally obvious at what "level" you are accessing the resource. Here are some sample endpoints for employees:
Company-wide:/api/v1/employees
Business-unit-specific:/api/v1/businessUnits/{id}/employees
Job-specific:/api/v1/jobs/{id}/employees