mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-09-26 13:40:00 +00:00
67 lines
2 KiB
Swift
67 lines
2 KiB
Swift
import Foundation
|
|
|
|
public protocol AnyStatus {
|
|
var id: String { get }
|
|
var content: HTMLString { get }
|
|
var account: Account { get }
|
|
var createdAt: String { get }
|
|
var mediaAttachments: [MediaAttachement] { get }
|
|
var mentions: [Mention] { get }
|
|
var repliesCount: Int { get }
|
|
var reblogsCount: Int { get }
|
|
var favouritesCount: Int { get }
|
|
var card: Card? { get }
|
|
var favourited: Bool { get }
|
|
var reblogged: Bool { get }
|
|
}
|
|
|
|
public struct Status: AnyStatus, Codable, Identifiable {
|
|
public let id: String
|
|
public let content: HTMLString
|
|
public let account: Account
|
|
public let createdAt: ServerDate
|
|
public let reblog: ReblogStatus?
|
|
public let mediaAttachments: [MediaAttachement]
|
|
public let mentions: [Mention]
|
|
public let repliesCount: Int
|
|
public let reblogsCount: Int
|
|
public let favouritesCount: Int
|
|
public let card: Card?
|
|
public let favourited: Bool
|
|
public let reblogged: Bool
|
|
|
|
public static func placeholder() -> Status {
|
|
.init(id: UUID().uuidString,
|
|
content: "Some post content\n Some more post content \n Some more",
|
|
account: .placeholder(),
|
|
createdAt: "2022-12-16T10:20:54.000Z",
|
|
reblog: nil,
|
|
mediaAttachments: [],
|
|
mentions: [],
|
|
repliesCount: 0,
|
|
reblogsCount: 0,
|
|
favouritesCount: 0,
|
|
card: nil,
|
|
favourited: false,
|
|
reblogged: false)
|
|
}
|
|
|
|
public static func placeholders() -> [Status] {
|
|
[.placeholder(), .placeholder(), .placeholder(), .placeholder(), .placeholder()]
|
|
}
|
|
}
|
|
|
|
public struct ReblogStatus: AnyStatus, Codable, Identifiable {
|
|
public let id: String
|
|
public let content: String
|
|
public let account: Account
|
|
public let createdAt: String
|
|
public let mediaAttachments: [MediaAttachement]
|
|
public let mentions: [Mention]
|
|
public let repliesCount: Int
|
|
public let reblogsCount: Int
|
|
public let favouritesCount: Int
|
|
public let card: Card?
|
|
public let favourited: Bool
|
|
public let reblogged: Bool
|
|
}
|