"""Hash + token üretim yardımcıları."""
import secrets

from passlib.context import CryptContext

_pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")


def hash_password(plain: str) -> str:
    return _pwd_context.hash(plain)


def verify_password(plain: str, hashed: str) -> bool:
    return _pwd_context.verify(plain, hashed)


def generate_token(nbytes: int = 32) -> str:
    return secrets.token_hex(nbytes)


def generate_api_key(prefix: str = "fvy_live") -> str:
    return f"{prefix}_{secrets.token_urlsafe(24)}"
