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

import Foundation

/// Represent an update to a UserReaction.reaction_type, adding or removing a like / dislike.
public struct ReactionSpec: Codable, Equatable {
    public var captchaToken: String?
    public var reaction: Reaction?
    /// RecommendationMetadataSchema
    public var recommendationMetadata: RecommendationMetadataSchema?

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

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

        public static let like = Self(rawValue: "LIKE")
        public static let dislike = Self(rawValue: "DISLIKE")
    }

    public init(captchaToken: String? = nil, reaction: Reaction? = nil, recommendationMetadata: RecommendationMetadataSchema? = nil) {
        self.captchaToken = captchaToken
        self.reaction = reaction
        self.recommendationMetadata = recommendationMetadata
    }
}
