// // ChatRoomViewModel.swift // SodaLive // // Created by klaus on 9/2/25. // import Foundation import Combine import Moya final class ChatRoomViewModel: ObservableObject { // MARK: - Published State @Published var isLoading: Bool = false @Published var errorMessage: String = "" @Published var isShowPopup = false @Published private(set) var characterProfileUrl: String = "" @Published private(set) var characterName: String = "Character Name" @Published private(set) var characterType: CharacterType = .Character // MARK: - Message State @Published var messageText: String = "" @Published private(set) var messages: [ServerChatMessage] = [] // MARK: - Private private let userRepository = UserRepository() private let repository = ChatRoomRepository() private var subscription = Set() // MARK: - Actions @MainActor func sendMessage() { guard !messageText.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else { return } let message = messageText.trimmingCharacters(in: .whitespacesAndNewlines) messageText = "" // TODO: 실제 메시지 전송 로직 구현 DEBUG_LOG("메시지 전송: \(message)") } }