2024-07-09 12:37:51 +00:00
|
|
|
import Foundation
|
|
|
|
import GRDB
|
|
|
|
import Martin
|
|
|
|
import SwiftUI
|
|
|
|
|
2024-07-10 11:09:59 +00:00
|
|
|
enum AttachmentType: Int, Stateable, DatabaseValueConvertible {
|
|
|
|
case movie = 0
|
|
|
|
case image = 1
|
|
|
|
case audio = 2
|
|
|
|
case file = 3
|
|
|
|
case location = 4
|
|
|
|
case contact = 5
|
2024-07-09 12:37:51 +00:00
|
|
|
}
|
|
|
|
|
2024-07-10 11:09:59 +00:00
|
|
|
struct AttachmentItem: DBStorable {
|
|
|
|
static let databaseTableName = "attachment_items"
|
|
|
|
|
|
|
|
let id: String
|
|
|
|
static let attachment = belongsTo(Attachment.self)
|
2024-07-09 13:13:37 +00:00
|
|
|
let type: AttachmentType
|
2024-07-10 11:09:59 +00:00
|
|
|
let localPath: URL?
|
|
|
|
let remotePath: URL?
|
|
|
|
let localThumbnailPath: URL?
|
|
|
|
let string: String?
|
2024-07-09 13:13:37 +00:00
|
|
|
}
|
|
|
|
|
2024-07-10 11:09:59 +00:00
|
|
|
struct Attachment: DBStorable {
|
|
|
|
static let databaseTableName = "attachments"
|
|
|
|
|
2024-07-09 12:37:51 +00:00
|
|
|
let id: String
|
2024-07-10 11:09:59 +00:00
|
|
|
static let items = hasMany(AttachmentItem.self)
|
|
|
|
static let message = hasOne(Message.self)
|
2024-07-09 12:37:51 +00:00
|
|
|
}
|
2024-07-10 11:09:59 +00:00
|
|
|
|
|
|
|
extension AttachmentItem: Equatable {}
|
|
|
|
extension Attachment: Equatable {}
|