<?php

include('classes.php');

/**
 * essential class Department's declaration in classes.php:
 * class Department {
 * protected string $name;
 * protected array $staff;
 *
 * public function __construct($name) {
 *  	$this->name = $name;
 * }
 *
 * public function addToStaff($employee) {
 *		$this->staff[] = $employee;
 * }
 * }
 */

$input = [
	'Purchasing' => [
		[9, Employee::MANAGER, 1],
		[3, Employee::MANAGER, 2],
		[2, Employee::MANAGER, 3],
		[2, Employee::MARKETER, 1],
		[1, Employee::MANAGER, 2, true]
	],

	'Sales' => [
		[12, Employee::MANAGER, 1],
		[6, Employee::MARKETER, 1],
		[3, Employee::ANALYST, 1],
		[2, Employee::ANALYST, 2],
		[1, Employee::MARKETER, 2, true]
	],


	'Advertising' => [
		[15, Employee::MARKETER, 1],
		[10, Employee::MARKETER, 2],
		[8, Employee::MANAGER, 1],
		[2, Employee::ENGINEER, 1],
		[1, Employee::MARKETER, 3, true]
	],


	'Logistics' => [
		[13, Employee::MANAGER, 1],
		[5, Employee::MANAGER, 2],
		[5, Employee::ENGINEER, 1],
		[1, Employee::MANAGER, 1, true]
	]

];

$depts = [];

foreach ($input as $dept => $staff) {
	$currentDept = new Department($dept);
	foreach ($staff as $employeeGroup) {
		$quantity = $employeeGroup[0];
		$type = $employeeGroup[1];
		$grade = $employeeGroup[2];
		$chief = isset($employeeGroup[3]) ? true : false;
		for ($c = 0; $c < $quantity; $c++) {
			$employeeObject = new $type($grade, $chief);
			$currentDept->addToStaff($employeeObject);
		}
	}
	$depts[] = $currentDept;
}