<?php

declare(strict_types=1);

namespace BeyondSEODeps\DDD\Domain\Common\Entities\Encryption;

use BeyondSEODeps\DDD\Domain\Base\Entities\EntitySet;
use BeyondSEODeps\DDD\Domain\Base\Entities\LazyLoad\LazyLoadRepo;
use BeyondSEODeps\DDD\Domain\Base\Entities\QueryOptions\QueryOptions;
use BeyondSEODeps\DDD\Domain\Base\Entities\QueryOptions\QueryOptionsTrait;
use BeyondSEODeps\DDD\Domain\Common\Repo\DB\Encryption\DBEncryptionScopePasswords;
use BeyondSEODeps\DDD\Domain\Common\Services\EncryptionScopesService;

/**
 * @property EncryptionScopePassword[] $elements;
 * @method EncryptionScopePassword getByUniqueKey(string $uniqueKey)
 * @method EncryptionScopePassword first()
 * @method EncryptionScopePassword[] getElements()
 * @method static EncryptionScopesService getService()
 * @method static DBEncryptionScopePasswords getRepoClassInstance(?string $repoType = null)
 */
#[LazyLoadRepo(LazyLoadRepo::DB, DBEncryptionScopePasswords::class)]
#[QueryOptions(top: 10)]
class EncryptionScopePasswords extends EntitySet
{
    use QueryOptionsTrait;

    public const SERVICE_NAME = EncryptionScopesService::class;
}
