namespace ColaFlow.Modules.ProjectManagement.Application.Common.Interfaces;

/// <summary>
/// Provides access to the current tenant context
/// </summary>
public interface ITenantContext
{
    /// <summary>
    /// Gets the current tenant ID
    /// </summary>
    /// <returns>The current tenant ID</returns>
    /// <exception cref="UnauthorizedAccessException">Thrown when tenant context is not available</exception>
    Guid GetCurrentTenantId();

    /// <summary>
    /// Gets the current user ID from claims (optional - may be null for system operations)
    /// </summary>
    /// <returns>The current user ID or null if not available</returns>
    Guid? GetCurrentUserId();
}
