Bark/Model/Message.swift
2025-11-21 15:10:14 +08:00

57 lines
1.5 KiB
Swift

//
// Message.swift
// Bark
//
// Created by huangfeng on 2020/5/25.
// Copyright © 2020 Fin. All rights reserved.
//
import RealmSwift
import SwiftyJSON
import UIKit
class Message: Object {
enum BodyType: String {
case plainText
case markdown
}
@Persisted(primaryKey: true) var id = UUID().uuidString
@Persisted var title: String?
@Persisted var subtitle: String?
@Persisted var body: String?
@Persisted var bodyType: String?
@Persisted var url: String?
@Persisted var image: String?
@Persisted(indexed: true) var group: String?
@Persisted(indexed: true) var createDate: Date?
var type: BodyType {
get {
guard let bodyType = bodyType else {
return .plainText
}
return BodyType(rawValue: bodyType) ?? .plainText
}
}
/// JSON
convenience init?(json: JSON) {
self.init()
guard let id = json["id"].string else {
return nil
}
guard let createDate = json["createDate"].int64 else {
return nil
}
self.id = id
self.title = json["title"].string
self.subtitle = json["subtitle"].string
self.body = json["body"].string
self.bodyType = json["bodyType"].string
self.url = json["url"].string
self.image = json["image"].string
self.group = json["group"].string
self.createDate = Date(timeIntervalSince1970: TimeInterval(createDate))
}
}