Ariver
2026-05-28 da71eb5bccbdbd22da7cd74b6ddcec031f069482
Apptag/SmartCategorization/SmartCategorizationDraft.swift
@@ -44,6 +44,13 @@
    }
}
struct SmartDefaultNoteProvenance: Codable, Hashable {
    let entryID: String
    let languageCode: String
    let notesVersion: Int
    let noteFingerprint: String
}
struct SmartAppCategorizationAssignment: Codable, Hashable, Identifiable {
    let appName: String
    let bundleIdentifier: String?
@@ -54,6 +61,8 @@
    let reason: String
    let provenance: [String]
    let defaultNote: String?
    let defaultNoteCandidates: [String]
    let defaultNoteProvenance: SmartDefaultNoteProvenance?
    var id: String {
        if let bundleIdentifier, !bundleIdentifier.isEmpty {
@@ -78,7 +87,9 @@
        source: SmartCategorizationAssignmentSource,
        reason: String,
        provenance: [String] = [],
        defaultNote: String? = nil
        defaultNote: String? = nil,
        defaultNoteCandidates: [String] = [],
        defaultNoteProvenance: SmartDefaultNoteProvenance? = nil
    ) {
        self.appName = appName
        self.bundleIdentifier = bundleIdentifier
@@ -89,6 +100,8 @@
        self.reason = reason
        self.provenance = provenance
        self.defaultNote = defaultNote
        self.defaultNoteCandidates = defaultNoteCandidates
        self.defaultNoteProvenance = defaultNoteProvenance
    }
    private static func uniqueOrdered(_ ids: [SmartCategoryID]) -> [SmartCategoryID] {