//
//  SettingsDetailAccountModel.swift
//  Multiplatform iOS
//
//  Created by Rizwan on 08/07/20.
//  Copyright © 2020 Ranchero Software. All rights reserved.
//

import SwiftUI
import Account
import RSCore

class SettingsDetailAccountModel: ObservableObject {
	let account: Account
	@Published var name: String {
		didSet {
			account.name = name.isEmpty ? nil : name
		}
	}
	@Published var isActive: Bool {
		didSet {
			account.isActive = isActive
		}
	}

	init(_ account: Account) {
		self.account = account
		self.name = account.name ?? ""
		self.isActive = account.isActive
	}

	var defaultName: String {
		account.defaultName
	}

	var nameForDisplay: String {
		account.nameForDisplay
	}

	var accountImage: RSImage {
		AppAssets.image(for: account.type)!
	}

	var isCredentialsAvailable: Bool {
		return account.type != .onMyMac
	}

	var isDeletable: Bool {
		return AccountManager.shared.defaultAccount != account
	}

	func delete() {
		AccountManager.shared.deleteAccount(account)
	}
}