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

import Foundation

/// Schema for share details response
public struct ShareCodeResponse: Codable, Equatable {
    public var contentId: String
    public var contentType: ContentType
    public var message: String?
    public var sharerAvatarUrl: String?
    public var sharerDisplayName: String?
    public var sharerHandle: String?
    public var success: Bool

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

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

        public static let song = Self(rawValue: "song")
        public static let playlist = Self(rawValue: "playlist")
        public static let profile = Self(rawValue: "profile")
        public static let hook = Self(rawValue: "hook")
    }

    public init(contentId: String, contentType: ContentType, message: String? = nil, sharerAvatarUrl: String? = nil, sharerDisplayName: String? = nil, sharerHandle: String? = nil, success: Bool) {
        self.contentId = contentId
        self.contentType = contentType
        self.message = message
        self.sharerAvatarUrl = sharerAvatarUrl
        self.sharerDisplayName = sharerDisplayName
        self.sharerHandle = sharerHandle
        self.success = success
    }
}
