44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
namespace Tiku.Application.Learning;
|
|
|
|
public sealed record EffectiveLearningAccessSnapshot(
|
|
Guid TenantId,
|
|
Guid UserId,
|
|
Guid BusinessLineId,
|
|
Guid PrimaryProfileVersionId,
|
|
IReadOnlySet<Guid> AlternateProfileVersionIds,
|
|
IReadOnlySet<Guid> ContentReleaseIds,
|
|
IReadOnlySet<Guid> AudienceSegmentIds,
|
|
IReadOnlySet<Guid> ManifestVersionIds,
|
|
long GrantVersion,
|
|
long ContentVersion,
|
|
long StrongRevocationVersion,
|
|
DateTimeOffset ValidUntil,
|
|
DateTimeOffset CompiledAt);
|
|
|
|
public interface IEffectiveLearningAccessService
|
|
{
|
|
Task<EffectiveLearningAccessSnapshot> GetSnapshotAsync(
|
|
LearningActor actor,
|
|
Guid businessLineId,
|
|
CancellationToken cancellationToken = default);
|
|
|
|
Task InvalidateAsync(
|
|
Guid tenantId,
|
|
Guid userId,
|
|
Guid businessLineId,
|
|
CancellationToken cancellationToken = default);
|
|
}
|
|
|
|
public interface ILearningStrongRevocationService
|
|
{
|
|
Task EnsureVersionAsync(
|
|
LearningActor actor,
|
|
long expectedVersion,
|
|
CancellationToken cancellationToken = default);
|
|
|
|
Task InvalidateAsync(
|
|
Guid tenantId,
|
|
Guid userId,
|
|
CancellationToken cancellationToken = default);
|
|
}
|