// // KMAdvertisementModel.swift // KMAdvertisement // // Created by lizhe on 2022/11/30. // //参考链接 https://www.jianshu.com/p/a24cf8f37860 //func encode(of model: T) throws where T: Codable { // let encoder = JSONEncoder() // encoder.outputFormatting = .prettyPrinted // let encodedData = try encoder.encode(model) // print(String(data: encodedData, encoding: .utf8)!) //} //func decode(of jsonString: String, type: T.Type) throws -> T where T: Codable { // let data = jsonString.data(using: .utf8)! // let decoder = JSONDecoder() // let model = try! decoder.decode(T.self, from: data) // return model //} /** */ @objcMembers public class KMAdvertisementModel: NSObject, Codable { public var appName: KMAdvertisementAppNameType = .FilmageEditorMac //产品名 public var platform: KMAdvertisementPlatformType = .Mac //平台 public var showType: KMAdvertisementShowType = .view //显示类型 public let startTime: String? //开始时间 时间戳 public let endTime: String? //结束时间 时间戳 public let version: String? //小于等于此版本生效 public let hidden: Bool? //是否显示 let subscribeType: KMAdvertisementSubscribeType? //是否订阅 public var content: [KMAdvertisementModelSection]? } @objcMembers public class KMAdvertisementModelSection: NSObject, Codable { let sectionTitle: KMAdvertisementModelItem.Text? public var content: [KMAdvertisementModelItem]? } @objcMembers public class KMAdvertisementModelItem: NSObject, Codable { public var productID: String? public let startTime: String? //开始时间 时间戳 public let endTime: String? //结束时间 时间戳 public var hidden: Bool? var index: Int? let title: Text? let imageURL: Image? let ipadImageURL: Image? public let linkURL: Language? let tips: Language? let button: Text? public var actionType: KMAdvertisementActionType = .URL public struct Text: Codable { let font: Font? let color: Color? let background: Background? let language: Language? } public struct Font: Codable { let name: String? let size: Int? } public struct Color: Codable { let height: ColorState? let normal: ColorState? struct ColorState: Codable { let dark: ColorInfo? let universal: ColorInfo? struct ColorInfo: Codable { var hex: String? var alpha: Float? } } } public struct Background: Codable { let color: Color? let layer: Layer? struct Layer: Codable { let cornerRadius: CGFloat? let borderWidth: CGFloat? let borderColor: Color? } } public struct Image: Codable { let height: ImageInfo? let normal: ImageInfo? let background: Background? } public struct ImageInfo: Codable { let dark: Language? let universal: Language? } public class Language: NSObject, Codable { let en: String? let zh_TW: String? let zh_CN: String? } }