//
//  CommentImageModel.swift

//
//  Created by Leon on 2025/7/21.
//

import Foundation

class CommentImageModel {
    var uploadUrl: String?
    var image: UIImage?
    var isReport: Bool = false
    var isCoach: Bool = false
    var imageUploadComplete: ((Bool, UploadPhotoM) -> Void)?
    
    @discardableResult
    func startUpload(with image: UIImage, checkImage: Bool = false) -> UploadPhotoM {
        self.image = image
        
        if isReport {
            let model = UploadPhotoM()
            model.image = image
            model.imageSize = image.pixelSize
            model.isAutoCheckImage = checkImage
            // Unknown: [NSDate date] timestamp implementation
            model.addThisItemTimeStamp = Int(Date().timeIntervalSince1970) // Placeholder for timestamp
            
            CloudStorage.shared.s3BatchAddPhotos([model], bucket: .IM_IMG) { [weak self] result in
                guard let self = self else { return }
                if result {
                    self.uploadUrl = model.remoteFullPath
                }
                self.imageUploadComplete?(result, model)
            }
            return model
        }else {
            let model = UploadPhotoM()
            model.image = image
            model.imageSize = image.pixelSize
            model.isAutoCheckImage = checkImage
            // Unknown: [NSDate date] timestamp implementation
            model.addThisItemTimeStamp = Int(Date().timeIntervalSince1970) // Placeholder for timestamp
            CloudStorage.shared.s3BatchAddPhotos([model], bucket: .IM_IMG) { [weak self] result in
                guard let self = self else { return }
                if result {
                    self.uploadUrl = model.remoteFullPath
                }
                self.imageUploadComplete?(result, model)
            }
            return model
        }
    }
}
