Files
Swarm/DysonNetwork.Shared/Models/ActivityPubDelivery.cs
2026-01-01 01:20:44 +08:00

36 lines
1.0 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using NodaTime;
namespace DysonNetwork.Shared.Models;
public class SnActivityPubDelivery : ModelBase
{
public Guid Id { get; set; } = Guid.NewGuid();
[MaxLength(2048)] public string ActivityId { get; set; } = null!;
[MaxLength(128)] public string ActivityType { get; set; } = null!;
[MaxLength(2048)] public string InboxUri { get; set; } = null!;
[MaxLength(2048)] public string ActorUri { get; set; } = null!;
public DeliveryStatus Status { get; set; } = DeliveryStatus.Pending;
public int RetryCount { get; set; } = 0;
[MaxLength(4096)] public string? ErrorMessage { get; set; }
public Instant? LastAttemptAt { get; set; }
public Instant? NextRetryAt { get; set; }
public Instant? SentAt { get; set; }
[MaxLength(2048)] public string? ResponseStatusCode { get; set; }
}
public enum DeliveryStatus
{
Pending,
Processing,
Sent,
Failed,
ExhaustedRetries
}