<?php

namespace App\Providers;

use App\Auth\BcryptPasswordHasher;
use App\Auth\Clock;
use App\Auth\PasswordHasher;
use App\Auth\RandomTokenGenerator;
use App\Auth\SystemClock;
use App\Auth\TokenGenerator;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->app->bind(
            PasswordHasher::class,
            BcryptPasswordHasher::class,
        );
        $this->app->bind(
            TokenGenerator::class,
            RandomTokenGenerator::class,
        );
        $this->app->bind(
            Clock::class,
            SystemClock::class,
        );
    }
}
