36 lines
972 B
C#
36 lines
972 B
C#
using DysonNetwork.Shared.Data;
|
|
using DysonNetwork.Shared.Proto;
|
|
using NodaTime;
|
|
using NodaTime.Serialization.Protobuf;
|
|
|
|
namespace DysonNetwork.Pass.Account;
|
|
|
|
public enum RelationshipStatus : short
|
|
{
|
|
Friends = 100,
|
|
Pending = 0,
|
|
Blocked = -100
|
|
}
|
|
|
|
public class Relationship : ModelBase
|
|
{
|
|
public Guid AccountId { get; set; }
|
|
public Account Account { get; set; } = null!;
|
|
public Guid RelatedId { get; set; }
|
|
public Account Related { get; set; } = null!;
|
|
|
|
public Instant? ExpiredAt { get; set; }
|
|
|
|
public RelationshipStatus Status { get; set; } = RelationshipStatus.Pending;
|
|
|
|
public Shared.Proto.Relationship ToProtoValue() => new()
|
|
{
|
|
AccountId = AccountId.ToString(),
|
|
RelatedId = RelatedId.ToString(),
|
|
Account = Account.ToProtoValue(),
|
|
Related = Related.ToProtoValue(),
|
|
Status = (int)Status,
|
|
CreatedAt = CreatedAt.ToTimestamp(),
|
|
UpdatedAt = UpdatedAt.ToTimestamp()
|
|
};
|
|
} |