<?php

namespace MintyPHP\Repository\Tenant;

/** Contract for storing and retrieving Microsoft Entra ID SSO configuration per tenant. */
interface TenantMicrosoftAuthRepositoryInterface
{
    public function findByTenantId(int $tenantId): ?array;

    public function listByTenantIds(array $tenantIds): array;

    public function upsertByTenantId(int $tenantId, array $data): bool;

    /** @return list<array{tenant_id: int, allowed_domains: string}> Enabled configs with explicit domain match */
    public function findEnabledWithExplicitDomain(string $domain): array;
}
