using MassTransit; using Tiku.Application.Security; using Tiku.Contracts; namespace Tiku.Infrastructure.Messaging; internal sealed class SecurityStateChangedConsumer(IRedisSecurityStore redisSecurityStore) : IConsumer, IConsumer, IConsumer { public Task Consume(ConsumeContext context) => redisSecurityStore.SetInvalidationVersionAsync( "authorization", context.Message.TenantId, context.Message.UserId, context.Message.Version, context.CancellationToken); public Task Consume(ConsumeContext context) => redisSecurityStore.SetInvalidationVersionAsync( $"capability-{context.Message.ModuleCode}", context.Message.TenantId, null, context.Message.Version, context.CancellationToken); public Task Consume(ConsumeContext context) => redisSecurityStore.SetInvalidationVersionAsync( "membership", context.Message.TenantId, context.Message.UserId, context.Message.OccurredAt.ToUnixTimeMilliseconds(), context.CancellationToken); }