imsg/Sources/IMsgCore/Models.swift
2025-12-28 17:17:40 +01:00

83 lines
1.9 KiB
Swift

import Foundation
public struct Chat: Sendable, Equatable {
public let id: Int64
public let identifier: String
public let name: String
public let service: String
public let lastMessageAt: Date
public init(id: Int64, identifier: String, name: String, service: String, lastMessageAt: Date) {
self.id = id
self.identifier = identifier
self.name = name
self.service = service
self.lastMessageAt = lastMessageAt
}
}
public struct Message: Sendable, Equatable {
public let rowID: Int64
public let chatID: Int64
public let sender: String
public let text: String
public let date: Date
public let isFromMe: Bool
public let service: String
public let handleID: Int64?
public let attachmentsCount: Int
public init(
rowID: Int64,
chatID: Int64,
sender: String,
text: String,
date: Date,
isFromMe: Bool,
service: String,
handleID: Int64?,
attachmentsCount: Int
) {
self.rowID = rowID
self.chatID = chatID
self.sender = sender
self.text = text
self.date = date
self.isFromMe = isFromMe
self.service = service
self.handleID = handleID
self.attachmentsCount = attachmentsCount
}
}
public struct AttachmentMeta: Sendable, Equatable {
public let filename: String
public let transferName: String
public let uti: String
public let mimeType: String
public let totalBytes: Int64
public let isSticker: Bool
public let originalPath: String
public let missing: Bool
public init(
filename: String,
transferName: String,
uti: String,
mimeType: String,
totalBytes: Int64,
isSticker: Bool,
originalPath: String,
missing: Bool
) {
self.filename = filename
self.transferName = transferName
self.uti = uti
self.mimeType = mimeType
self.totalBytes = totalBytes
self.isSticker = isSticker
self.originalPath = originalPath
self.missing = missing
}
}