50 lines
1.8 KiB
C#
50 lines
1.8 KiB
C#
using MongoDB.Entities;
|
|||
|
|
|
||
|
|
namespace PrivaPub.Models.Federation
|
||
|
|
{
|
||
|
|
public class ObjectRecord : Entity
|
||
|
|
{
|
||
|
|
public string ObjectURI { get; set; }
|
||
|
|
public string PostId { get; set; }
|
||
|
|
public string ObjectType { get; set; }
|
||
|
|
public string Host { get; set; }
|
||
|
|
|
||
|
|
public string Raw { get; set; }//the object exactly as it reached us, unless it was larger than MaxRawBytes
|
||
|
|
public string RawHash { get; set; }//sha-256 of the raw bytes, hex
|
||
|
|
public int RawBytes { get; set; }
|
||
|
|
public bool RawTruncated { get; set; }
|
||
|
|
public string ActivityContext { get; set; }//the delivering activity's @context, which an embedded object does not repeat
|
||
|
|
|
||
|
|
public ObjectPath Path { get; set; }
|
||
|
|
public bool Refetched { get; set; }//delivered, but read again from its origin because it came embedded from another one
|
||
|
|
public string ActivityId { get; set; }//the activity that brought it, or that caused the fetch
|
||
|
|
public string ActivityType { get; set; }
|
||
|
|
public string ActivityActorURI { get; set; }
|
||
|
|
public string Inbox { get; set; }//"shared" or "personal" when delivered
|
||
|
|
public string SignatureScheme { get; set; }
|
||
|
|
public string KeyId { get; set; }
|
||
|
|
public string Algorithm { get; set; }
|
||
|
|
public List<string> SignedHeaders { get; set; } = new();
|
||
|
|
|
||
|
|
public DateTime ReceivedAt { get; set; } = DateTime.UtcNow;
|
||
|
|
public DateTime? Published { get; set; }
|
||
|
|
public DateTime? Updated { get; set; }
|
||
|
|
public List<ObjectRevision> Revisions { get; set; } = new();
|
||
|
|
}
|
||
|
|
|
||
|
|
public class ObjectRevision
|
||
|
|
{
|
||
|
|
public string Raw { get; set; }
|
||
|
|
public string RawHash { get; set; }
|
||
|
|
public bool RawTruncated { get; set; }
|
||
|
|
public string ActivityId { get; set; }
|
||
|
|
public DateTime? Updated { get; set; }
|
||
|
|
public DateTime ReceivedAt { get; set; } = DateTime.UtcNow;
|
||
|
|
}
|
||
|
|
|
||
|
|
public enum ObjectPath
|
||
|
|
{
|
||
|
|
Delivered,
|
||
|
|
Fetched
|
||
|
|
}
|
||
|
|
}
|