});
//end of overriding default functionality
//begin of routing
$application->get('/version', function (Application $application) {
    //begin of process
    return $application->json(VERSION);
    //end of process
});
$application->delete('/unique-number-repository/{name}', function (Application $application, Request $request) use($locator) {
    //begin of runtime parameters
    $name = urldecode($request->get('name'));
    $user = urldecode($request->get('applicant_name'));
    //end of runtime parameters
    //begin of dependencies
    $repositoryStorage = $locator->getRepositoryStorage();
    $uniqueNumberStorage = $locator->getUniqueNumberStorage();
    //end of dependencies
    //begin of validation
    $repositoryStorage->resetRuntimeProperties();
    $repositoryStorage->filterByApplicantName($user);
    $repositoryStorage->filterByName($name);
    $repositoryNameDoesNotExist = !$repositoryStorage->has();
    if ($repositoryNameDoesNotExist) {
        $application->abort(404);
    }
    $repositoryStorage->resetRuntimeProperties();
    //end of validation
    //begin of process
    $repositoryStorage->filterByApplicantName($user);
    $repositoryStorage->filterByName($name);
    $result = $repositoryStorage->delete();
 /**
  * @return NumberEnumerator
  */
 public function create()
 {
     return new NumberEnumerator($this->locator->getUniqueNumberStorage());
 }