* @category Class * @license https://www.gnu.org/licenses/lgpl-3.0.en.html GNU Lesser General Public License * @link www.splendidbear.org * @since 2026. 04. 21. * * @extends PersistentProxyObjectFactory */ class WebAuthnCredentialFactory extends PersistentProxyObjectFactory { protected function defaults(): array { return [ 'user' => UserFactory::new(), 'credentialData' => json_encode([ 'type' => 'public-key', 'id' => base64_encode(self::faker()->uuid()), 'transports' => ['usb', 'nfc'], ], JSON_THROW_ON_ERROR), 'credentialName' => self::faker()->words(3, true), 'createdAt' => new DateTime(), 'lastUsedAt' => null, 'isBackupEligible' => self::faker()->boolean(), 'isBackupAuthenticated' => self::faker()->boolean(), ]; } public static function class(): string { return WebAuthnCredential::class; } public function withName(string $name): self { return $this->with(['credentialName' => $name]); } public function recentlyUsed(): self { return $this->with(['lastUsedAt' => new DateTime()]); } }