metatext-app-ios-iphone-ipad/DB/Sources/DB/Content/StatusInfo.swift

25 lines
940 B
Swift
Raw Normal View History

2020-09-03 05:28:34 +02:00
// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
import GRDB
2020-09-30 01:56:09 +02:00
struct StatusInfo: Codable, Hashable, FetchableRecord {
2020-09-30 02:42:12 +02:00
let record: StatusRecord
let accountInfo: AccountInfo
let reblogAccountInfo: AccountInfo?
let reblogRecord: StatusRecord?
2020-09-03 05:28:34 +02:00
}
2020-09-30 01:56:09 +02:00
extension StatusInfo {
2020-09-30 02:42:12 +02:00
static func addingIncludes<T: DerivableRequest>(_ request: T) -> T where T.RowDecoder == StatusRecord {
request.including(required: AccountInfo.addingIncludes(StatusRecord.account).forKey(CodingKeys.accountInfo))
.including(optional: AccountInfo.addingIncludes(StatusRecord.reblogAccount)
.forKey(CodingKeys.reblogAccountInfo))
.including(optional: StatusRecord.reblog.forKey(CodingKeys.reblogRecord))
}
2020-09-30 02:42:12 +02:00
static func request(_ request: QueryInterfaceRequest<StatusRecord>) -> QueryInterfaceRequest<Self> {
addingIncludes(request).asRequest(of: self)
}
}