<?php

declare(strict_types=1);

namespace App\Administration\Application\Port;

/**
 * Port interface for password hashing operations.
 *
 * This abstracts the password hashing mechanism, allowing the Application
 * layer to remain independent of the specific hashing implementation
 * (e.g., Symfony PasswordHasher with Argon2id).
 */
interface PasswordHasher
{
    /**
     * Hash a plain text password.
     */
    public function hash(string $plainPassword): string;

    /**
     * Verify a plain password against a hash.
     */
    public function verify(string $hashedPassword, string $plainPassword): bool;
}
