mirror of
https://github.com/metabolist/metatext.git
synced 2024-09-26 13:30:02 +00:00
22 lines
848 B
Swift
22 lines
848 B
Swift
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
import Foundation
|
|
import GRDB
|
|
|
|
struct ConversationInfo: Codable, Hashable, FetchableRecord {
|
|
let record: ConversationRecord
|
|
let accountInfos: [AccountInfo]
|
|
let lastStatusInfo: StatusInfo
|
|
}
|
|
|
|
extension ConversationInfo {
|
|
static func addingIncludes<T: DerivableRequest>(_ request: T) -> T where T.RowDecoder == ConversationRecord {
|
|
request.including(all: AccountInfo.addingIncludes(ConversationRecord.accounts).forKey(CodingKeys.accountInfos))
|
|
.including(required: StatusInfo.addingIncludes(ConversationRecord.lastStatus)
|
|
.forKey(CodingKeys.lastStatusInfo))
|
|
}
|
|
|
|
static func request(_ request: QueryInterfaceRequest<ConversationRecord>) -> QueryInterfaceRequest<Self> {
|
|
addingIncludes(request).asRequest(of: self)
|
|
}
|
|
}
|