services:
    app.command_handler.portal.user.change_password_with_token:
        class: App\Command\Portal\User\ChangePasswordWithTokenHandler
        arguments:
            - '@app.reset_password_helper.user'
            - '@app.command_bus'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\ChangePasswordWithToken, bus: 'command.bus' }

    app.command_handler.portal.user.change_user_password:
        class: App\Command\Portal\User\ChangeUserPasswordHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@security.password_hasher'
            - '@event_dispatcher'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\ChangeUserPassword, bus: 'command.bus' }

    app.command_handler.portal.user.check_reset_token:
        class: App\Command\Portal\User\CheckResetTokenHandler
        arguments:
            - '@app.reset_password_helper.user'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\CheckResetToken, bus: 'command.bus' }

    app.command_handler.portal.user.delete_user:
        class: App\Command\Portal\User\DeleteUserHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@event_dispatcher'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\DeleteUser, bus: 'command.bus' }

    app.command_handler.portal.user.modify_user:
        class: App\Command\Portal\User\ModifyUserHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@app.command_bus'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\ModifyUser, bus: 'command.bus' }

    app.command_handler.portal.user.request_password_change:
        class: App\Command\Portal\User\RequestPasswordChangeHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@app.reset_password_helper.user'
            - '@event_dispatcher'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\RequestPasswordChange, bus: 'command.bus' }

    app.command_handler.portal.user.resend_verification:
        class: App\Command\Portal\User\ResendVerificationHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@app.url_generator.portal'
            - '@translator'
            - '@mailer'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\ResendVerification, bus: 'command.bus' }

    app.command_handler.portal.user.verify_user:
        class: App\Command\Portal\User\VerifyUserHandler
        arguments:
            - '@App\Repository\User\UserRepository'
            - '@event_dispatcher'
        tags:
            - { name: messenger.message_handler, handles: App\Command\Portal\User\VerifyUser, bus: 'command.bus' }
