// // SDDebugInfo.swift // AutoCatCore // // Created by Selim Mustafaev on 10.06.2025. // Copyright © 2025 Selim Mustafaev. All rights reserved. // import SwiftData @Model final class SDDebugInfo { @Relationship(deleteRule: .cascade) var autocod: SDDebugInfoEntry? @Relationship(deleteRule: .cascade) var vin01vin: SDDebugInfoEntry? @Relationship(deleteRule: .cascade) var vin01base: SDDebugInfoEntry? @Relationship(deleteRule: .cascade) var vin01history: SDDebugInfoEntry? @Relationship(deleteRule: .cascade) var nomerogram: SDDebugInfoEntry? init( autocod: SDDebugInfoEntry? = nil, vin01vin: SDDebugInfoEntry? = nil, vin01base: SDDebugInfoEntry? = nil, vin01history: SDDebugInfoEntry? = nil, nomerogram: SDDebugInfoEntry? = nil ) { self.autocod = autocod self.vin01vin = vin01vin self.vin01base = vin01base self.vin01history = vin01history self.nomerogram = nomerogram } } @Model final class SDDebugInfoEntry { var fields: Int64 var error: String? var status: Int init(fields: Int64, error: String? = nil, status: Int) { self.fields = fields self.error = error self.status = status } } extension SDDebugInfo: DtoConvertible { public var dto: DebugInfoDto { DebugInfoDto( autocod: autocod?.dto, vin01vin: vin01vin?.dto, vin01base: vin01base?.dto, vin01history: vin01history?.dto, nomerogram: nomerogram?.dto ) } public convenience init(dto: DebugInfoDto) { self.init( autocod: SDDebugInfoEntry(dto: dto.autocod), vin01vin: SDDebugInfoEntry(dto: dto.vin01vin), vin01base: SDDebugInfoEntry(dto: dto.vin01base), vin01history: SDDebugInfoEntry(dto: dto.vin01history), nomerogram: SDDebugInfoEntry(dto: dto.nomerogram) ) } } extension SDDebugInfoEntry: DtoConvertible { public var dto: DebugInfoEntryDto { DebugInfoEntryDto( fields: fields, error: error, status: DebugInfoStatus(rawValue: status) ?? .success ) } public convenience init(dto: DebugInfoEntryDto) { self.init( fields: dto.fields, error: dto.error, status: dto.status.rawValue ) } }