//
//  BrotherPrintError.swift
//  Pods
//
//  Created by Clément Champouillon on 09/04/2025.
//


import Foundation
import Capacitor
import BRLMPrinterKit

class BrotherPrintError {
    public var code: String
    public var message: String

    init(code: String, message: String) {
        self.code = code
        self.message = message
    }
    
    convenience init(error: BRLMOpenChannelError) {
        self.init(code: String(error.code.rawValue), message: "ERROR_\(error.code.rawValue)")
    }
    
    convenience init(error: BRLMPrintError) {
        self.init(code: String(error.code.rawValue), message: error.errorDescription)
    }
    
    convenience init(error: BRLMGetStatusError) {
        self.init(code: String(error.code.rawValue), message: "ERROR_\(error.code.rawValue)")
    }
    
    func toJSON() -> [String: Any] {
        return ["code": self.code, "message": self.message]
    }

    func rejectCall(call: CAPPluginCall) {
        call.reject(self.message, self.code)
    }
}
