<?php

declare(strict_types=1);

namespace App\Support\Tenants;

use App\Models\Tenant;
use App\Models\TenantOnboardingSession;
use App\Models\User;

final readonly class TenantActionContext
{
    public function __construct(
        public Tenant $tenant,
        public TenantLifecycle $lifecycle,
        public TenantActionSurface $surface,
        public ?User $actor,
        public ?int $workspaceId,
        public TenantInteractionLane $lane,
        public ?TenantOnboardingSession $relatedOnboardingDraft,
        public bool $relatedOnboardingIsResumable,
        public bool $hasRelatedOnboardingDraft,
        public bool $isArchived,
    ) {}

    public function isOnboardingSurface(): bool
    {
        return $this->surface->isOnboardingSurface();
    }

    public function isGenericTenantManagementSurface(): bool
    {
        return $this->surface->isGenericTenantManagementSurface();
    }
}
