session-ios/SessionMessagingKit/Database/Models/InteractionAttachment.swift
Morgan Pretty 93b54a3b7d Added logic for the GarbageCollectionJob
Fixed a bug where the GalleryRailView wasn't appearing
Fixed a database reentrancy error
Fixed a bug where the threadId for migrated attachmentUpload jobs wasn't getting set to the non-legacy version
Deleted the buggy overwritten 'delete' methods to avoid confusion
Updated the GroupMember table to cascade delete if it's thread is deleted (can't do so for the Closed/Open group but they share the same id conveniently)
Updated the 'isRunningTests' to be based on the existence of XCInjectBundleInfo which seems to be more consistent than the old approach
2022-06-02 14:13:07 +10:00

47 lines
1.6 KiB
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import GRDB
import SessionUtilitiesKit
public struct InteractionAttachment: Codable, Equatable, FetchableRecord, PersistableRecord, TableRecord, ColumnExpressible {
public static var databaseTableName: String { "interactionAttachment" }
internal static let interactionForeignKey = ForeignKey([Columns.interactionId], to: [Interaction.Columns.id])
internal static let attachmentForeignKey = ForeignKey([Columns.attachmentId], to: [Attachment.Columns.id])
public static let interaction = belongsTo(Interaction.self, using: interactionForeignKey)
internal static let attachment = belongsTo(Attachment.self, using: attachmentForeignKey)
public typealias Columns = CodingKeys
public enum CodingKeys: String, CodingKey, ColumnExpression {
case albumIndex
case interactionId
case attachmentId
}
public let albumIndex: Int
public let interactionId: Int64
public let attachmentId: String
// MARK: - Relationships
public var interaction: QueryInterfaceRequest<Interaction> {
request(for: InteractionAttachment.interaction)
}
public var attachment: QueryInterfaceRequest<Attachment> {
request(for: InteractionAttachment.attachment)
}
// MARK: - Initialization
public init(
albumIndex: Int,
interactionId: Int64,
attachmentId: String
) {
self.albumIndex = albumIndex
self.interactionId = interactionId
self.attachmentId = attachmentId
}
}