feat: enforce tenant isolation and shared question bank

This commit is contained in:
2026-07-27 16:59:12 +08:00
parent 28e9a9fa41
commit db4c7b4496
137 changed files with 6402 additions and 112274 deletions

View File

@@ -0,0 +1,27 @@
using Tiku.Domain.Content;
namespace Tiku.Application.QuestionBanks;
public interface IPublicQuestionAccessPolicy
{
Task EnsureCanStartAsync(Guid tenantId, CancellationToken cancellationToken = default);
}
public interface IQuestionReferenceService
{
Task<TenantQuestionReference> ResolveAsync(
Guid tenantId,
Guid? userId,
QuestionLocator locator,
CancellationToken cancellationToken = default);
}
public sealed class PublicQuestionAccessDeniedException(string code, string message) : Exception(message)
{
public string Code { get; } = code;
}
public sealed class QuestionLocatorException(string code, string message) : Exception(message)
{
public string Code { get; } = code;
}