metatext/DB/Sources/DB/Content/ConversationRecord.swift

33 lines
903 B
Swift
Raw Normal View History

2020-10-29 06:03:45 +00:00
// Copyright © 2020 Metabolist. All rights reserved.
import Foundation
import GRDB
import Mastodon
struct ConversationRecord: ContentDatabaseRecord, Hashable {
let id: Conversation.Id
let unread: Bool
let lastStatusId: Status.Id?
}
extension ConversationRecord {
enum Columns {
2020-11-13 00:13:09 +00:00
static let id = Column(CodingKeys.id)
static let unread = Column(CodingKeys.unread)
static let lastStatusId = Column(CodingKeys.lastStatusId)
2020-10-29 06:03:45 +00:00
}
static let lastStatus = belongsTo(StatusRecord.self)
static let accountJoins = hasMany(ConversationAccountJoin.self)
static let accounts = hasMany(
AccountRecord.self,
through: accountJoins,
using: ConversationAccountJoin.account)
init(conversation: Conversation) {
id = conversation.id
unread = conversation.unread
lastStatusId = conversation.lastStatus?.id
}
}