// // EmployeeCellViewModel.swift // EmployeeDirectory // // Created by Matt Bruce on 1/20/25. // import Foundation import UIKit /// ViewModel that will be used along with the EmployeeTableViewCell. @MainActor public class EmployeeCellViewModel: ObservableObject { // MARK: - Properties private let employee: Employee public private(set) var uuid: String public private(set) var fullName: String public private(set) var phoneNumber: String? public private(set) var emailAddress: String public private(set) var biography: String? public private(set) var team: String public private(set) var employeeType: String @Published public private(set) var smallPhoto: UIImage? // MARK: - Initializer public init(employee: Employee) { self.employee = employee // Initialize properties uuid = employee.uuid.uuidString fullName = employee.fullName phoneNumber = employee.phoneNumber?.formatUSNumber() emailAddress = employee.emailAddress biography = employee.biography team = employee.team employeeType = employee.employeeType.description // Fetch the image for the url if it exists if let endpoint = employee.photoURLSmall { Task{ if let smallPhotoURL = URL(string: endpoint) { smallPhoto = await ImageCacheService.shared.loadImage(from: smallPhotoURL) } } } } }