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
import Foundation
/// social.grain.actor.defs#profileView
struct GrainProfile: Codable, Sendable, Identifiable {
/// The profile record's CID: absent for an account with no grain
/// profile indexed, which the lexicon allows.
let cid: String?
let did: String
let handle: String
var displayName: String?
var description: String?
var labels: [ATLabel]?
var avatar: String?
var createdAt: String?
var id: String {
did
}
}
/// social.grain.actor.defs#profileViewDetailed
struct GrainProfileDetailed: Codable, Sendable, Identifiable {
/// The profile record's CID: absent for an account with no grain
/// profile indexed, which the lexicon allows.
let cid: String?
let did: String
let handle: String
var displayName: String?
var description: String?
var avatar: String?
var cameras: [String]?
var followersCount: Int?
var followsCount: Int?
var galleryCount: Int?
var indexedAt: String?
var createdAt: String?
var viewer: ActorViewerState?
var labels: [ATLabel]?
var messageMe: MessageMe?
var id: String {
did
}
}
/// social.grain.actor.defs#viewerState
struct ActorViewerState: Codable, Sendable {
var following: String?
var followedBy: String?
var blocking: String?
var blockedBy: Bool?
var muted: Bool?
}
/// Germ Network messageMe declaration
struct MessageMe: Codable, Sendable {
let showButtonTo: String
let messageMeUrl: String
}