// Generated by Create API
// https://github.com/CreateAPI/CreateAPI

import Foundation

public struct PromoItemSchema: Codable, Equatable, Identifiable {
    public var backgroundImageUrl: String?
    /// PromoBadgeSchema
    public var badge: PromoBadgeSchema?
    public var cardHeight: Int?
    public var entityType: EntityType?
    public var id: String
    /// PromoCtaSchema
    public var primaryCta: PromoCtaSchema?
    /// PromoHeadlineSchema
    public var primaryHeadline: PromoHeadlineSchema?
    /// PromoCtaSchema
    public var secondaryCta: PromoCtaSchema?
    /// PromoHeadlineSchema
    public var secondaryHeadline: PromoHeadlineSchema?

    public struct EntityType: RawRepresentable, Codable, Equatable {
        public let rawValue: String

        public init(rawValue: String) {
            self.rawValue = rawValue
        }

        public static let promoSchema = Self(rawValue: "promo_schema")
    }

    public init(backgroundImageUrl: String? = nil, badge: PromoBadgeSchema? = nil, cardHeight: Int? = nil, entityType: EntityType? = nil, id: String, primaryCta: PromoCtaSchema? = nil, primaryHeadline: PromoHeadlineSchema? = nil, secondaryCta: PromoCtaSchema? = nil, secondaryHeadline: PromoHeadlineSchema? = nil) {
        self.backgroundImageUrl = backgroundImageUrl
        self.badge = badge
        self.cardHeight = cardHeight
        self.entityType = entityType
        self.id = id
        self.primaryCta = primaryCta
        self.primaryHeadline = primaryHeadline
        self.secondaryCta = secondaryCta
        self.secondaryHeadline = secondaryHeadline
    }
}
