2020-09-03 05:28:34 +02:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
import GRDB
|
|
|
|
|
|
|
|
struct StatusResult: Codable, Hashable, FetchableRecord {
|
2020-09-05 04:05:15 +02:00
|
|
|
let account: AccountRecord
|
|
|
|
let accountMoved: AccountRecord?
|
|
|
|
let status: StatusRecord
|
|
|
|
let reblogAccount: AccountRecord?
|
|
|
|
let reblogAccountMoved: AccountRecord?
|
|
|
|
let reblog: StatusRecord?
|
2020-09-03 05:28:34 +02:00
|
|
|
}
|
|
|
|
|
2020-09-05 03:06:21 +02:00
|
|
|
extension StatusResult {
|
2020-09-30 01:44:31 +02:00
|
|
|
static func request(_ request: QueryInterfaceRequest<StatusRecord>) -> QueryInterfaceRequest<Self> {
|
|
|
|
request.including(required: StatusRecord.account.forKey(CodingKeys.account))
|
|
|
|
.including(optional: StatusRecord.accountMoved.forKey(CodingKeys.accountMoved))
|
|
|
|
.including(optional: StatusRecord.reblogAccount.forKey(CodingKeys.reblogAccount))
|
|
|
|
.including(optional: StatusRecord.reblogAccountMoved.forKey(CodingKeys.reblogAccountMoved))
|
|
|
|
.including(optional: StatusRecord.reblog.forKey(CodingKeys.reblog))
|
|
|
|
.asRequest(of: self)
|
|
|
|
}
|
|
|
|
|
2020-09-05 03:06:21 +02:00
|
|
|
var accountResult: AccountResult {
|
|
|
|
AccountResult(account: account, moved: accountMoved)
|
|
|
|
}
|
|
|
|
|
|
|
|
var reblogAccountResult: AccountResult? {
|
|
|
|
guard let reblogAccount = reblogAccount else { return nil }
|
|
|
|
|
|
|
|
return AccountResult(account: reblogAccount, moved: reblogAccountMoved)
|
|
|
|
}
|
|
|
|
}
|