about summary refs log tree commit diff
path: root/LibMatrix/Homeservers/ImplementationDetails/Synapse/Models/Responses/UserListResult.cs
blob: 313290622c14171b40128ffdf2c3d0c3a522d3a9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System.Text.Json.Serialization;

namespace LibMatrix.Homeservers.ImplementationDetails.Synapse.Models.Responses;

public class SynapseAdminUserListResult {
    [JsonPropertyName("offset")]
    public int Offset { get; set; }

    [JsonPropertyName("total")]
    public int Total { get; set; }

    [JsonPropertyName("next_token")]
    public string? NextToken { get; set; }

    [JsonPropertyName("users")]
    public List<SynapseAdminUserListResultUser> Users { get; set; } = new();

    public class SynapseAdminUserListResultUser {
        [JsonPropertyName("name")]
        public string Name { get; set; }

        [JsonPropertyName("is_guest")]
        public bool? IsGuest { get; set; }

        [JsonPropertyName("admin")]
        public bool? Admin { get; set; }

        [JsonPropertyName("user_type")]
        public string? UserType { get; set; }

        [JsonPropertyName("deactivated")]
        public bool Deactivated { get; set; }

        [JsonPropertyName("erased")]
        public bool Erased { get; set; }

        [JsonPropertyName("shadow_banned")]
        public bool ShadowBanned { get; set; }

        [JsonPropertyName("displayname")]
        public string? DisplayName { get; set; }

        [JsonPropertyName("avatar_url")]
        public string? AvatarUrl { get; set; }

        [JsonPropertyName("creation_ts")]
        public long CreationTs { get; set; }

        [JsonPropertyName("last_seen_ts")]
        public long? LastSeenTs { get; set; }

        [JsonPropertyName("locked")]
        public bool Locked { get; set; }

        // Requires enabling MSC3866
        [JsonPropertyName("approved")]
        public bool? Approved { get; set; }

        [JsonIgnore]
        public DateTime CreationTsDateTime {
            get => DateTimeOffset.FromUnixTimeMilliseconds(CreationTs).DateTime;
            set => CreationTs = new DateTimeOffset(value).ToUnixTimeMilliseconds();
        }

        [JsonIgnore]
        public DateTime? LastSeenTsDateTime {
            get => LastSeenTs.HasValue ? DateTimeOffset.FromUnixTimeMilliseconds(LastSeenTs.Value).DateTime : null;
            set => LastSeenTs = value.HasValue ? new DateTimeOffset(value.Value).ToUnixTimeMilliseconds() : null;
        }
    }
}