// // UserModel.swift // TraccarClient // // Created by George Makhoul on 29/10/2023. // Copyright © 2023 Traccar. All rights reserved. // import Foundation final class UserModel: KNObject { // MARK: - Properties var id: Int = 0 var name: String = "" var first_name: String = "" var last_name: String = "" var email: String = "" var avatar: String = "" // var cover: String? var designation_id: Int = 0 // MARK: - Init override init() { super.init() } init(_ dict: JSON, saveUser: Bool = false) { super.init() id = dict["id"] as? Int ?? 0 name = dict["name"] as? String ?? "" first_name = dict["first_name"] as? String ?? "" last_name = dict["last_name"] as? String ?? "" email = dict["email"] as? String ?? "" avatar = dict["avatar"] as? String ?? "" // cover = dict["cover"] as? String ?? "" designation_id = dict["designation_id"] as? Int ?? 0 if saveUser { saveToUserDefaults() } } //MARK: - Methods private func saveToUserDefaults() { let ud = UserDefaults.standard ud.set(id, forKey: Keys.User.id) ud.set(name, forKey: Keys.User.name) ud.set(first_name, forKey: Keys.User.firstName) ud.set(last_name, forKey: Keys.User.lastName) ud.set(email, forKey: Keys.User.email) ud.set(avatar, forKey: Keys.User.avatar) // ud.set(cover, forKey: Keys.User.cover) ud.set(designation_id, forKey: Keys.User.designation_id) } class func loadFromUserDefaults() -> UserModel { let ud = UserDefaults.standard var params: PARAMS = [:] if let id = ud.value(forKey: Keys.User.id) as? Int { params.add(key: .id, id) } if let full_name = ud.value(forKey: Keys.User.name) as? String { params.add(key: .name, full_name) } if let first_name = ud.value(forKey: Keys.User.firstName) as? String { params.add(key: .fName, first_name) } if let last_name = ud.value(forKey: Keys.User.lastName) as? String { params.add(key: .lName, last_name) } if let email = ud.value(forKey: Keys.User.email) as? String { params.add(key: .email, email) } if let avatar = ud.value(forKey: Keys.User.avatar) as? String { params.add(key: .avatar, avatar) } // if let cover = ud.value(forKey: Keys.User.cover) as? String { // params.add(key: .cover, cover) // } if let designation_id = ud.value(forKey: Keys.User.designation_id) as? String { params.add(key: .designation_id, designation_id) } return UserModel(params) } class func clearUserFromUserDefaults() { let ud = UserDefaults.standard ud.removeObject(forKey: Keys.User.id) ud.removeObject(forKey: Keys.User.name) ud.removeObject(forKey: Keys.User.firstName) ud.removeObject(forKey: Keys.User.lastName) ud.removeObject(forKey: Keys.User.email) ud.removeObject(forKey: Keys.User.avatar) ud.removeObject(forKey: Keys.User.designation_id) } }