2023-02-18 08:52:17 +01:00
|
|
|
|
using MongoDB.Entities;
|
|
|
|
|
|
2023-02-19 00:43:43 +01:00
|
|
|
|
namespace PrivaPub.Models.User
|
2023-02-18 08:52:17 +01:00
|
|
|
|
{
|
|
|
|
|
public class Avatar : Entity
|
|
|
|
|
{
|
|
|
|
|
public string Url { get; set; }//url
|
|
|
|
|
public string Name { get; set; }//name
|
|
|
|
|
public string UserName { get; set; }//preferredUsername
|
|
|
|
|
public string Biography { get; set; }//summary
|
|
|
|
|
|
|
|
|
|
public Dictionary<string, string> SharedPersonalContacts { get; set; } = new();
|
|
|
|
|
public string PrivateKey { get; set; }
|
|
|
|
|
public string PublicKey { get; set; }
|
|
|
|
|
public AvatarAccountState AccountState { get; set; } = AvatarAccountState.Normal;
|
|
|
|
|
public AvatarSettings Settings { get; set; } = new();
|
|
|
|
|
public Dictionary<string, string> Fields { get; set; } = new();
|
|
|
|
|
|
|
|
|
|
public string Domain { get; set; }
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public string PersonalNote { get; set; }
|
|
|
|
|
public string ModerationNote { get; set; }
|
2023-02-18 08:52:17 +01:00
|
|
|
|
|
|
|
|
|
public string InboxURL { get; set; }
|
|
|
|
|
public string OutboxURL { get; set; }
|
|
|
|
|
public string MovedToURL { get; set; }
|
|
|
|
|
public string PictureURL { get; set; }//icon
|
|
|
|
|
public string ThumbnailURL { get; set; }//image
|
|
|
|
|
public AvatarType AvatarType { get; set; } = AvatarType.Person;
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public AvatarServer AvatarServer { get; set; } = AvatarServer.PrivaPub;
|
2023-02-18 08:52:17 +01:00
|
|
|
|
|
|
|
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public DateTime? SilencedAt { get; set; }
|
|
|
|
|
public DateTime? SuspendedAt { get; set; }
|
|
|
|
|
public DateTime? BannedAt { get; set; }
|
|
|
|
|
public DateTime? DeletionAt { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ForeignAvatar : Entity
|
|
|
|
|
{
|
|
|
|
|
public string Url { get; set; }//url
|
|
|
|
|
public string Name { get; set; }//name
|
|
|
|
|
public string UserName { get; set; }//preferredUsername
|
|
|
|
|
public string Biography { get; set; }//summary
|
|
|
|
|
|
|
|
|
|
public Dictionary<string, string> SharedPersonalContacts { get; set; } = new();
|
|
|
|
|
public string PrivateKey { get; set; }
|
|
|
|
|
public string PublicKey { get; set; }
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public AvatarAccountState AccountState { get; set; } = AvatarAccountState.Normal;
|
2023-02-18 08:52:17 +01:00
|
|
|
|
public AvatarSettings Settings { get; set; } = new();
|
|
|
|
|
public Dictionary<string, string> Fields { get; set; } = new();
|
|
|
|
|
|
|
|
|
|
public string Domain { get; set; }
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public string PersonalNote { get; set; }
|
|
|
|
|
public string ModerationNote { get; set; }
|
2023-02-18 08:52:17 +01:00
|
|
|
|
public bool IsDiscoverable { get; set; } = true;
|
|
|
|
|
|
|
|
|
|
public string InboxURL { get; set; }
|
|
|
|
|
public string OutboxURL { get; set; }
|
|
|
|
|
public string MovedToURL { get; set; }
|
|
|
|
|
public string PictureURL { get; set; }//icon
|
|
|
|
|
public string ThumbnailURL { get; set; }//image
|
|
|
|
|
public AvatarType AvatarType { get; set; } = AvatarType.Person;
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public AvatarServer AvatarServer { get; set; } = AvatarServer.Unknown;
|
2023-02-18 08:52:17 +01:00
|
|
|
|
|
|
|
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
|
|
|
public DateTime? SilencedAt { get; set; }
|
|
|
|
|
public DateTime? SuspendedAt { get; set; }
|
|
|
|
|
public DateTime? BannedAt { get; set; }
|
|
|
|
|
public DateTime? DeletionAt { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class AvatarSettings
|
|
|
|
|
{
|
|
|
|
|
public string LanguageCode { get; set; } = "en-GB";
|
|
|
|
|
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public bool IsDefault { get; set; } = true;
|
|
|
|
|
|
2023-02-18 08:52:17 +01:00
|
|
|
|
public short IconsThemeIndexColour { get; set; } = 25;
|
|
|
|
|
public short LightThemeIndexColour { get; set; } = 25;
|
|
|
|
|
public short DarkThemeIndexColour { get; set; } = 215;
|
|
|
|
|
public bool PreferSystemTheming { get; set; } = true;
|
|
|
|
|
public bool ThemeIsDarkMode { get; set; } = false;
|
|
|
|
|
public bool ThemeIsDarkGray { get; set; } = false;
|
|
|
|
|
public bool ThemeIsLightGray { get; set; } = true;
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-19 00:43:43 +01:00
|
|
|
|
public enum AvatarServer
|
|
|
|
|
{
|
|
|
|
|
Unknown,
|
|
|
|
|
Pleroma,
|
|
|
|
|
Mastodon,
|
|
|
|
|
Akkoma,
|
|
|
|
|
Misskey,
|
|
|
|
|
PrivaPub
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-18 08:52:17 +01:00
|
|
|
|
public enum AvatarType
|
|
|
|
|
{
|
|
|
|
|
Application,
|
|
|
|
|
Group,
|
|
|
|
|
Organization,
|
|
|
|
|
Person,
|
|
|
|
|
Service
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public enum AvatarAccountState
|
|
|
|
|
{
|
|
|
|
|
Normal,
|
|
|
|
|
Silenced,
|
|
|
|
|
Suspended,
|
|
|
|
|
Banned,
|
|
|
|
|
Deleted
|
|
|
|
|
}
|
|
|
|
|
}
|