/**
 * @defgroup public_capital_project_close_process Закрытие проекта от инвестиций
 * @ingroup public_capital_processes

 * Процесс перевода открытого проекта в статус закрытого
 * для прекращения привлечения инвестиций от участников кооператива.

 * ## Назначение процесса

 * Закрытие проекта от инвестиций обеспечивает:
 * - Прекращение фазы привлечения средств
 * - Блокировку возможности инвестирования для участников
 * - Завершение формирования финансовой базы проекта
 * - Подготовку к переходу на следующий этап жизненного цикла

 * \htmlonly
 * <div class="mermaid">
 * sequenceDiagram
 *     participant К as Кооператив
 *     participant ПК as Контракт Capital
 *     participant П as Проект

 *     К->>ПК: 1. Инициация закрытия проекта
 *     Note over ПК: Проверка возможности закрытия
 *     ПК->>П: 2. Проверка статуса проекта
 *     alt Проект открыт для инвестиций
 *         П->>ПК: 3. Подтверждение статуса
 *         ПК->>П: 4. Закрытие проекта от инвестиций
 *         П->>К: 5. Проект закрыт от инвестиций
 *     else Проект уже закрыт
 *         ПК->>К: Ошибка: проект уже закрыт или не был открыт
 *     end
 * </div>
 * \endhtmlonly

 * ## Пошаговое описание процесса

 * ### Шаг 1: Инициация закрытия проекта
 * <b>Действие:</b> @ref capital::closeproject "Закрытие проекта"

 * Кооператив инициирует закрытие проекта от инвестиций после
 * достижения необходимого уровня финансирования или по другим
 * организационным причинам.

 * ### Шаг 2: Проверка возможности закрытия
 * <b>Действие:</b> Валидация предварительных условий

 * Система проверяет возможность закрытия проекта:
 * - Проект должен быть открыт для инвестиций (is_opened = true)
 * - Проект должен существовать

 * @post Подтвержден статус открытого проекта

 * ### Шаг 3: Закрытие проекта
 * <b>Действие:</b> Деактивация инвестиционной фазы

 * Система переводит проект в статус закрытого для инвестиций:
 * - Устанавливает флаг is_opened = false
 * - Блокирует возможность операций инвестирования
 * - Сохраняет все ранее привлеченные средства

 * @post Проект закрыт для приема инвестиций
 * @post Флаг is_opened установлен в false

 * ## Условия для закрытия

 * <b>Обязательные требования:</b>
 * - Проект должен быть открыт для инвестиций (is_opened = true)

 * <b>Результат закрытия:</b>
 * - Флаг is_opened устанавливается в false
 * - Блокируются операции инвестирования
 * - Сохраняются все ранее привлеченные инвестиции

 * ## Результат процесса

 * После завершения процесса:
 * 1. Проект переведен в статус закрытого для инвестиций
 * 2. Деактивированы механизмы привлечения средств
 * 3. Сохранена финансовая основа проекта
 * 4. Подготовлен переход к следующим этапам жизненного цикла

 * ## Связанные процессы

 * - @ref public_capital_project_opening_process "Открытие проекта для инвестиций" - обратная операция
 * - @ref public_capital_project_investment_process "Инвестирование в проект" - завершаемый этап
 * - @ref public_capital_project_start_process "Запуск генерации проекта" - возможный следующий этап

 * @see capital::closeproject
 * @see Capital::Projects::close_project
 * @see Capital::Projects::get_project_or_fail
 */
