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

35 lines
1.2 KiB
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-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-30 01:56:09 +02:00
extension StatusInfo {
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-30 01:56:09 +02:00
var accountInfo: AccountInfo {
AccountInfo(account: account, moved: accountMoved)
}
2020-09-30 01:56:09 +02:00
var reblogAccountInfo: AccountInfo? {
guard let reblogAccount = reblogAccount else { return nil }
2020-09-30 01:56:09 +02:00
return AccountInfo(account: reblogAccount, moved: reblogAccountMoved)
}
}