<?php

namespace App\Domains\Auth\Exceptions;

use Carbon\CarbonImmutable;
use RuntimeException;

class AccountLockedException extends RuntimeException
{
    public function __construct(
        public readonly CarbonImmutable $lockedUntil,
    ) {
        parent::__construct('The account is temporarily locked.');
    }

    public function retryAfterSeconds(): int
    {
        return max(1, (int) now()->diffInSeconds($this->lockedUntil, false));
    }
}
