// // CameraViewModel.swift // XuXuCheck // // Created by henseycai on 2025/6/25. // import Foundation import CoreImage @Observable class CameraViewModel { var currentFrame: CGImage? var array3D: [[[Double]]] = [] var arrayPaperDesc: [Int] = [0,0,0,0] var isSuccess: Bool = false var isDataSent: Bool = false var recordId: Int = 0 var recordResultModel: RecordResultModel? = nil var xuxuError:XuXuRespError? = nil var isNeedPopErr = false private let cameraManager = CameraManager() init() { Task { await handleCameraPreviews() } } private func resetData(){ recordId = 0 isSuccess = false isDataSent = false isNeedPopErr = false array3D = [] } func startSession(){ //init data resetData() cameraManager.StartCapture() } func stopSession(){ cameraManager.StopCapture() } func handleCameraPreviews() async { for await image in cameraManager.previewStream { Task { @MainActor in currentFrame = image } } } func recordDetailUrl() -> String{ let res = API.webrecordDetailUrl + GetGeneralRequestParams() + "&record_type=0&record_id=\(recordId)" return res } func addRecord(desc: [Int]){ self.isDataSent = true APIService.instance.addNewRecord(with: desc, with: array3D, completion: {(model,error) in // debugPrint(desc[0]) // debugPrint(desc[1]) // debugPrint(desc[2]) if let error = error{ debugPrint(error) self.xuxuError = error self.isNeedPopErr = true return } self.recordResultModel = model self.recordId = model?.data?.record_id ?? 0 self.isSuccess = true }) } }