2021-12-06 06:16:58 +00:00
|
|
|
<?php
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2020-2021 Антон Аксенов (Anthony Axenov)
|
|
|
|
*
|
|
|
|
* This code is licensed under MIT.
|
|
|
|
* Этот код распространяется по лицензии MIT.
|
|
|
|
* https://github.com/anthonyaxenov/atol-online/blob/master/LICENSE
|
|
|
|
*/
|
|
|
|
|
2021-12-06 08:14:19 +00:00
|
|
|
namespace AtolOnline\Collections;
|
2021-12-06 06:16:58 +00:00
|
|
|
|
|
|
|
use AtolOnline\Constants\Constraints;
|
2021-12-06 08:14:19 +00:00
|
|
|
use AtolOnline\Entities\Item;
|
2021-12-09 12:13:43 +00:00
|
|
|
use AtolOnline\Exceptions\EmptyItemsException;
|
2021-12-06 08:14:19 +00:00
|
|
|
use AtolOnline\Exceptions\TooManyItemsException;
|
2021-12-06 06:16:58 +00:00
|
|
|
|
|
|
|
/**
|
2021-12-06 08:14:19 +00:00
|
|
|
* Класс, описывающий коллекцию предметов расчёта для документа
|
2021-12-06 06:16:58 +00:00
|
|
|
*/
|
2021-12-06 08:14:19 +00:00
|
|
|
final class Items extends EntityCollection
|
2021-12-06 06:16:58 +00:00
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Класс объектов, находящихся в коллекции
|
|
|
|
*/
|
2021-12-06 08:14:19 +00:00
|
|
|
protected const ENTITY_CLASS = Item::class;
|
2021-12-06 06:16:58 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Максмальное количество объектов в коллекции
|
|
|
|
*/
|
2021-12-06 08:14:19 +00:00
|
|
|
protected const MAX_COUNT = Constraints::MAX_COUNT_DOC_ITEMS;
|
2021-12-06 06:16:58 +00:00
|
|
|
|
2021-12-09 12:13:43 +00:00
|
|
|
/**
|
|
|
|
* Класс исключения для выброса при пустой коллекции
|
|
|
|
*/
|
|
|
|
protected const EMPTY_EXCEPTION_CLASS = EmptyItemsException::class;
|
|
|
|
|
2021-12-06 06:16:58 +00:00
|
|
|
/**
|
|
|
|
* Класс-наследник TooManyException для выброса при превышении количества
|
|
|
|
*/
|
2021-12-09 12:13:43 +00:00
|
|
|
protected const TOO_MANY_EXCEPTION_CLASS = TooManyItemsException::class;
|
2021-12-06 06:16:58 +00:00
|
|
|
}
|