<?xml version="1.0" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>
        <service id="symfonycasts.reset_password.fake_request_repository" class="SymfonyCasts\Bundle\ResetPassword\Persistence\Fake\FakeResetPasswordInternalRepository" public="false"/>
        <service id="symfonycasts.reset_password.cleaner" class="SymfonyCasts\Bundle\ResetPassword\Util\ResetPasswordCleaner" public="false">
            <argument /> <!-- reset password request persister -->
            <argument /> <!-- reset password request enable_garbage_collection -->
        </service>

        <service id="SymfonyCasts\Bundle\ResetPassword\Command\ResetPasswordRemoveExpiredCommand">
            <tag name="console.command" command="reset-password:remove-expired" />
            <argument type="service" id="symfonycasts.reset_password.cleaner" />
        </service>

        <service id="symfonycasts.reset_password.random_generator" class="SymfonyCasts\Bundle\ResetPassword\Generator\ResetPasswordRandomGenerator" public="false" />
        <service id="symfonycasts.reset_password.token_generator" class="SymfonyCasts\Bundle\ResetPassword\Generator\ResetPasswordTokenGenerator" public="false">
            <argument>%kernel.secret%</argument>
            <argument type="service" id="symfonycasts.reset_password.random_generator" />
        </service>

        <service id="SymfonyCasts\Bundle\ResetPassword\ResetPasswordHelperInterface" alias="symfonycasts.reset_password.helper" />

        <service id="symfonycasts.reset_password.helper" class="SymfonyCasts\Bundle\ResetPassword\ResetPasswordHelper">
            <argument type="service" id="symfonycasts.reset_password.token_generator"/>
            <argument type="service" id="symfonycasts.reset_password.cleaner" />
            <argument /> <!-- reset password request persister -->
            <argument /> <!-- reset password request lifetime -->
            <argument /> <!-- reset password throttle limit -->
        </service>
    </services>
</container>