Meshtastic-Apple/MeshtasticClient/Model/MessageModel.swift

84 lines
2.9 KiB
Swift
Raw Normal View History

2021-09-21 20:49:12 -07:00
//
// MessageModel.swift
// MeshtasticClient
//
// Created by Garth Vander Houwen on 9/21/21.
//
import Foundation
2021-11-29 15:59:06 -08:00
struct MessageModel: Identifiable, Codable {
2021-09-21 20:49:12 -07:00
let id: UUID
var messageId: UInt32
var messageTimestamp: UInt32
var fromUserId: UInt32
var toUserId: UInt32
2021-09-21 20:49:12 -07:00
var fromUserLongName: String
var toUserLongName: String
var fromUserShortName: String
var toUserShortName: String
2021-09-21 20:49:12 -07:00
var receivedACK: Bool
var messagePayload: String
var direction: String
2021-11-29 15:59:06 -08:00
init(id: UUID = UUID(), messageId: UInt32, messageTimeStamp: UInt32, fromUserId: UInt32, toUserId: UInt32, fromUserLongName: String, toUserLongName: String, fromUserShortName: String, toUserShortName: String, receivedACK: Bool, messagePayload: String, direction: String) {
2021-09-21 20:49:12 -07:00
self.id = id
self.messageId = messageId
self.messageTimestamp = messageTimeStamp
self.fromUserId = fromUserId
self.toUserId = toUserId
self.fromUserLongName = fromUserLongName
self.toUserLongName = toUserLongName
self.fromUserShortName = fromUserShortName
self.toUserShortName = toUserShortName
2021-09-21 20:49:12 -07:00
self.receivedACK = receivedACK
self.messagePayload = messagePayload
self.direction = direction
}
}
extension MessageModel {
static var data: [MessageModel] {
[
2021-11-29 15:59:06 -08:00
// MessageModel(messageId: 3773493338, messageTimeStamp: 1632407404, fromUserId: 2930161432, toUserId: 4294967295, fromUserLongName: "TBEAM ARMY GREEN", toUserLongName: "Unknown 1", fromUserShortName: "GVH", toUserShortName: "U1", receivedACK: false, messagePayload: "yo", direction: "received")
]
}
}
extension MessageModel {
struct Data {
var id: UUID
var messageId: UInt32
var messageTimestamp: UInt32
var fromUserId: UInt32
var toUserId: UInt32
var fromUserLongName: String
var toUserLongName: String
var fromUserShortName: String
var toUserShortName: String
var receivedACK: Bool
var messagePayload: String
var direction: String
2021-11-29 15:59:06 -08:00
}
var data: Data {
return Data(id: id, messageId: messageId, messageTimestamp: messageTimestamp, fromUserId: fromUserId, toUserId: toUserId, fromUserLongName: fromUserLongName, toUserLongName: toUserLongName, fromUserShortName: fromUserShortName, toUserShortName: toUserShortName, receivedACK: receivedACK, messagePayload: messagePayload, direction: direction)
}
mutating func update(from data: Data) {
messageId = data.messageId
messageTimestamp = data.messageTimestamp
fromUserId = data.fromUserId
toUserId = data.toUserId
fromUserLongName = data.fromUserLongName
toUserLongName = data.toUserLongName
fromUserShortName = data.fromUserShortName
toUserShortName = data.toUserShortName
receivedACK = data.receivedACK
messagePayload = data.messagePayload
direction = data.direction
}
}