diff --git a/Yeti/Models/NostrClientModel.swift b/Yeti/Models/NostrClientModel.swift new file mode 100644 index 0000000..8a37407 --- /dev/null +++ b/Yeti/Models/NostrClientModel.swift @@ -0,0 +1,30 @@ +// +// NostrClientModel.swift +// Yeti +// +// Created by Terry Yiu on 1/20/25. +// + +import Foundation +import SwiftData + +@Model +final class NostrClientModel { + @Attribute(.unique) var id: String + + @Relationship(deleteRule: .cascade) var signEventPermissions: [SignEventPermissionModel] = [] + + var signingPolicy: SigningPolicy? + + var readPublicKeyPermission: Bool? + var nip04EncryptPermission: Bool? + var nip44EncryptPermission: Bool? + var nip04DencryptPermission: Bool? + var nip44DencryptPermission: Bool? + var getRelaysPermission: Bool? + var decryptZapEventPermission: Bool? + + init(id: String) { + self.id = id + } +} diff --git a/Yeti/Models/ProfileSettingsModel.swift b/Yeti/Models/ProfileSettingsModel.swift new file mode 100644 index 0000000..d04c08a --- /dev/null +++ b/Yeti/Models/ProfileSettingsModel.swift @@ -0,0 +1,20 @@ +// +// ProfileSettingsModel.swift +// Yeti +// +// Created by Terry Yiu on 1/20/25. +// + +import Foundation +import SwiftData + +@Model +final class ProfileSettingsModel { + @Attribute(.unique) var publicKey: String + + var nostrClientModels: [NostrClientModel] = [] + + init(publicKey: String) { + self.publicKey = publicKey + } +} diff --git a/Yeti/Models/SignEventPermissionModel.swift b/Yeti/Models/SignEventPermissionModel.swift new file mode 100644 index 0000000..54342ab --- /dev/null +++ b/Yeti/Models/SignEventPermissionModel.swift @@ -0,0 +1,20 @@ +// +// SignEventPermissionModel.swift +// Yeti +// +// Created by Terry Yiu on 1/20/25. +// + +import Foundation +import SwiftData + +@Model +final class SignEventPermissionModel { + var kind: Int + var allowed: Bool + + init(kind: Int, allowed: Bool) { + self.kind = kind + self.allowed = allowed + } +} diff --git a/Yeti/Models/SigningPolicyModel.swift b/Yeti/Models/SigningPolicy.swift similarity index 86% rename from Yeti/Models/SigningPolicyModel.swift rename to Yeti/Models/SigningPolicy.swift index eca59a6..718734d 100644 --- a/Yeti/Models/SigningPolicyModel.swift +++ b/Yeti/Models/SigningPolicy.swift @@ -1,21 +1,11 @@ // -// SigningPolicyModel.swift +// SigningPolicy.swift // Yeti // // Created by Terry Yiu on 1/20/25. // import Foundation -import SwiftData - -@Model -final class SigningPolicyModel { - var signingPolicy: SigningPolicy - - init(signingPolicy: SigningPolicy) { - self.signingPolicy = signingPolicy - } -} enum SigningPolicy: Int, Codable, CaseIterable { case basic = 0 diff --git a/Yeti/Views/ContentView.swift b/Yeti/Views/ContentView.swift index ca14d03..e46ce76 100644 --- a/Yeti/Views/ContentView.swift +++ b/Yeti/Views/ContentView.swift @@ -19,5 +19,5 @@ struct ContentView: View { #Preview { ContentView() - .modelContainer(for: SigningPolicyModel.self, inMemory: true) + .modelContainer(for: ProfileSettingsModel.self, inMemory: true) } diff --git a/Yeti/YetiApp.swift b/Yeti/YetiApp.swift index 1c30315..71a1b27 100644 --- a/Yeti/YetiApp.swift +++ b/Yeti/YetiApp.swift @@ -14,7 +14,7 @@ struct YetiApp: App { var sharedModelContainer: ModelContainer = { let schema = Schema([ - SigningPolicyModel.self + ProfileSettingsModel.self ]) let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false)