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

import Foundation

public struct ProjectSpec: Codable, Equatable {
    public var creditsPerAnnotation: Int?
    public var instructions: String?
    public var mediaType: MediaType
    public var minReviewTimeSeconds: Int?
    public var preferenceDimensions: [[String: String]]
    public var question: String
    public var syncPlayheads: Bool?

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

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

        public static let audio = Self(rawValue: "audio")
        public static let video = Self(rawValue: "video")
    }

    public init(creditsPerAnnotation: Int? = nil, instructions: String? = nil, mediaType: MediaType, minReviewTimeSeconds: Int? = nil, preferenceDimensions: [[String: String]], question: String, syncPlayheads: Bool? = nil) {
        self.creditsPerAnnotation = creditsPerAnnotation
        self.instructions = instructions
        self.mediaType = mediaType
        self.minReviewTimeSeconds = minReviewTimeSeconds
        self.preferenceDimensions = preferenceDimensions
        self.question = question
        self.syncPlayheads = syncPlayheads
    }
}
