11import Foundation
22
3- public final class BlazeCampaign : Decodable {
3+ public final class BlazeCampaign : Codable {
44 public let campaignID : Int
55 public let name : String ?
66 public let startDate : Date ?
77 public let endDate : Date ?
8+ /// A raw campaign status on the server.
89 public let status : Status
10+ /// A subset of ``BlazeCampaign/status-swift.property`` values where some
11+ /// cases are skipped for simplicity and mapped to other more common ones.
12+ public let uiStatus : Status
913 public let budgetCents : Int ?
1014 public let targetURL : String ?
1115 public let stats : Stats ?
1216 public let contentConfig : ContentConfig ?
1317 public let creativeHTML : String ?
1418
15- public init ( campaignID: Int , name: String ? , startDate: Date ? , endDate: Date ? , status: Status , budgetCents: Int ? , targetURL: String ? , stats: Stats ? , contentConfig: ContentConfig ? , creativeHTML: String ? ) {
19+ public init ( campaignID: Int , name: String ? , startDate: Date ? , endDate: Date ? , status: Status , uiStatus : Status , budgetCents: Int ? , targetURL: String ? , stats: Stats ? , contentConfig: ContentConfig ? , creativeHTML: String ? ) {
1620 self . campaignID = campaignID
1721 self . name = name
1822 self . startDate = startDate
1923 self . endDate = endDate
2024 self . status = status
25+ self . uiStatus = uiStatus
2126 self . budgetCents = budgetCents
2227 self . targetURL = targetURL
2328 self . stats = stats
@@ -31,14 +36,15 @@ public final class BlazeCampaign: Decodable {
3136 case startDate
3237 case endDate
3338 case status
39+ case uiStatus
3440 case budgetCents
3541 case targetURL = " targetUrl "
3642 case contentConfig
3743 case stats = " campaignStats "
3844 case creativeHTML = " creativeHtml "
3945 }
4046
41- public enum Status : String , Decodable {
47+ public enum Status : String , Codable {
4248 case scheduled
4349 case created
4450 case rejected
@@ -55,7 +61,7 @@ public final class BlazeCampaign: Decodable {
5561 }
5662 }
5763
58- public struct Stats : Decodable {
64+ public struct Stats : Codable {
5965 public let impressionsTotal : Int ?
6066 public let clicksTotal : Int ?
6167
@@ -65,7 +71,7 @@ public final class BlazeCampaign: Decodable {
6571 }
6672 }
6773
68- public struct ContentConfig : Decodable {
74+ public struct ContentConfig : Codable {
6975 public let title : String ?
7076 public let snippet : String ?
7177 public let clickURL : String ?
0 commit comments