Iceshrimp.NET/Iceshrimp.Shared/Schemas/UserProfileResponse.cs

48 lines
No EOL
1.6 KiB
C#

using System.Text.Json.Serialization;
namespace Iceshrimp.Shared.Schemas;
public class UserProfileResponse
{
public required string Id { get; set; }
public required string? Birthday { get; set; }
public required string? Location { get; set; }
public required List<UserProfileField>? Fields { get; set; }
public required string? Bio { get; set; }
public required int? Followers { get; set; }
public required int? Following { get; set; }
public required RelationData Relations { get; set; }
}
public class RelationData
{
[JsonIgnore] public required string UserId;
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsSelf { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsFollowing { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsFollowedBy { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsRequested { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsRequestedBy { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsBlocking { get; set; }
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public required bool IsMuting { get; set; }
}
public class UserProfileField
{
public required string Name { get; set; }
public required string Value { get; set; }
public bool? Verified { get; set; }
}