metatext/DB/Sources/DB/Content/ProfileInfo.swift
2021-01-17 23:19:34 -08:00

26 lines
966 B
Swift

// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
import GRDB
import Mastodon
struct ProfileInfo: Codable, Hashable, FetchableRecord {
let accountInfo: AccountInfo
let relationship: Relationship?
let identityProofRecords: [IdentityProofRecord]
let featuredTagRecords: [FeaturedTagRecord]
}
extension ProfileInfo {
static func addingIncludes<T: DerivableRequest>(_ request: T) -> T where T.RowDecoder == AccountRecord {
AccountInfo.addingIncludes(request)
.including(optional: AccountRecord.relationship.forKey(CodingKeys.relationship))
.including(all: AccountRecord.identityProofs.forKey(CodingKeys.identityProofRecords))
.including(all: AccountRecord.featuredTags.forKey(CodingKeys.featuredTagRecords))
}
static func request(_ request: QueryInterfaceRequest<AccountRecord>) -> QueryInterfaceRequest<Self> {
addingIncludes(request).asRequest(of: self)
}
}