<?php

namespace app\commands;

use yii\console\Controller;
use yii\console\ExitCode;

use app\models\Account;

class AccountController extends Controller
{
    /**
     * Сгенерировать уникальные идентификаторы
     *
     * @param int|string $_key Ключ аккаунта (оставить пустым или отправить "all", если для всех)
     * @param bool $init Параметр обозначающий изменение только для тех у кого ранее идентификатор задан не был (без перезаписи)
     */
    public function actionGenerateIndex(int|string $_key = null, bool $init = true)
    {
        // Инициализация
        $accounts = empty($_key) || strcasecmp($_key, 'all') === 0 ? Account::readAll() : [Account::searchById($_key)];

        // Генерация
        $amount = Account::generateIndexes($accounts, $init);

        echo 'Обработано аккаунтов: ' . $amount;

        if ($amount > 0) {
            // Был успешно обработан минимум 1 аккаунт

            return ExitCode::OK;
        }

        return ExitCode::UNSPECIFIED_ERROR;
    }
}
