mastodon-ios/CoreDataStack/Entity/Mention.swift

60 lines
1.5 KiB
Swift
Raw Normal View History

//
// Mention.swift
// CoreDataStack
//
// Created by sxiaojian on 2021/2/1.
//
import Foundation
import CoreData
final public class Mention: NSManagedObject {
public typealias ID = String
@NSManaged public private(set) var identifier: ID
@NSManaged public private(set) var id: String
@NSManaged public private(set) var username: String
@NSManaged public private(set) var acct: String
@NSManaged public private(set) var url: String
@NSManaged public private(set) var toot: Toot?
}
extension Mention {
@discardableResult
public static func insert(
into context: NSManagedObjectContext,
property:Property
) -> Mention {
let mention :Mention = context.insertObject()
mention.identifier = UUID().uuidString
mention.id = property.id
mention.username = property.username
mention.acct = property.acct
mention.url = property.url
return mention
}
}
extension Mention {
public struct Property {
public let id: String
public let username: String
public let acct: String
public let url: String
public init(id: String, username: String, acct: String, url: String) {
self.id = id
self.username = username
self.acct = acct
self.url = url
}
}
}
extension Mention: Managed {
public static var defaultSortDescriptors: [NSSortDescriptor] {
return [NSSortDescriptor(keyPath: \Mention.id, ascending: false)]
}
}