IceCubesApp/Packages/Models/Sources/Models/Account.swift
Thomas Ricouard 7f6419ebae Swiftformat
2023-01-17 11:36:01 +01:00

78 lines
2.2 KiB
Swift

import Foundation
public struct Account: Codable, Identifiable, Equatable, Hashable {
public func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
public struct Field: Codable, Equatable, Identifiable {
public var id: String {
value + name
}
public let name: String
public let value: HTMLString
public let verifiedAt: String?
}
public struct Source: Codable, Equatable {
public let privacy: Visibility
public let sensitive: Bool
public let language: String?
public let note: String
public let fields: [Field]
}
public let id: String
public let username: String
public let displayName: String
public let avatar: URL
public let header: URL
public let acct: String
public let note: HTMLString
public let createdAt: ServerDate
public let followersCount: Int
public let followingCount: Int
public let statusesCount: Int
public let lastStatusAt: String?
public let fields: [Field]
public let locked: Bool
public let emojis: [Emoji]
public let url: URL?
public let source: Source?
public let bot: Bool
public let discoverable: Bool?
public static func placeholder() -> Account {
.init(id: UUID().uuidString,
username: "Username",
displayName: "Display Name",
avatar: URL(string: "https://files.mastodon.social/media_attachments/files/003/134/405/original/04060b07ddf7bb0b.png")!,
header: URL(string: "https://files.mastodon.social/media_attachments/files/003/134/405/original/04060b07ddf7bb0b.png")!,
acct: "account@account.com",
note: "Some content",
createdAt: "2022-12-16T10:20:54.000Z",
followersCount: 10,
followingCount: 10,
statusesCount: 10,
lastStatusAt: nil,
fields: [],
locked: false,
emojis: [],
url: nil,
source: nil,
bot: false,
discoverable: true)
}
public static func placeholders() -> [Account] {
[.placeholder(), .placeholder(), .placeholder(), .placeholder(), .placeholder(),
.placeholder(), .placeholder(), .placeholder(), .placeholder(), .placeholder()]
}
}
public struct FamilliarAccounts: Codable {
public let id: String
public let accounts: [Account]
}