Files
tiku-backend.net/Tiku.Domain/Learning/LearningOutboxEntities.cs

28 lines
1.0 KiB
C#

using System.Text.Json;
using Tiku.Domain.Common;
namespace Tiku.Domain.Learning;
public sealed class LearningOutboxMessage : TenantEntity
{
public string EventType { get; set; } = string.Empty;
public int SchemaVersion { get; set; } = 1;
public Guid AggregateId { get; set; }
public JsonElement Payload { get; set; } = JsonDefaults.Object();
public DateTimeOffset OccurredAt { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset AvailableAt { get; set; } = DateTimeOffset.UtcNow;
public DateTimeOffset? ProcessedAt { get; set; }
public DateTimeOffset? DeadLetteredAt { get; set; }
public int AttemptCount { get; set; }
public string? LockedBy { get; set; }
public DateTimeOffset? LockExpiresAt { get; set; }
public string? LastError { get; set; }
}
public sealed class LearningProjectionReceipt : TenantEntity
{
public Guid OutboxMessageId { get; set; }
public string ProjectionName { get; set; } = string.Empty;
public DateTimeOffset ProcessedAt { get; set; } = DateTimeOffset.UtcNow;
}