<?php

declare(strict_types=1);

namespace app\models;

use app\models\Account;

/**
 * Связь инстанций импорта с поставками
 */
class ImportEdgeAccount extends Edge
{
    /**
     * Имя коллекции
     */
    public static function collectionName(): string
    {
        return 'import_edge_account';
    }

    /**
     * Свойства
     */
    public function attributes(): array
    {
        return array_merge(
            parent::attributes(),
            [
            ]
        );
    }

    /**
     * Метки свойств
     */
    public function attributeLabels(): array
    {
        return array_merge(
            parent::attributeLabels(),
            [
            ]
        );
    }

    /**
     * Правила
     */
    public function rules(): array
    {
        return array_merge(
            parent::rules(),
            [
            ]
        );
    }

    /**
     * Поиск по аккаунту
     *
     * @param Account $account Аккаунт
     * @param int $limit Ограничение по максимальному количеству
     */
    public static function searchByAccount(Account $account, int $limit = 1): array
    {
        $account = Account::initAccount($account);

        return static::find()->where(['_from' => $account->collectionName() . "$account->_key"])->limit($limit)->all();
    }
}
