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

import Foundation

public struct BatchInfo: Codable, Equatable {
    public var batchId: String
    public var createdAt: String
    public var prompt: String
    public var status: Status
    public var title: String?
    public var type: `Type`

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

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

        public static let processing = Self(rawValue: "processing")
        public static let complete = Self(rawValue: "complete")
        public static let error = Self(rawValue: "error")
    }

    /// Type
    public struct `Type`: RawRepresentable, Codable, Equatable {
        public let rawValue: String

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

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

    public init(batchId: String, createdAt: String, prompt: String, status: Status, title: String? = nil, type: `Type`) {
        self.batchId = batchId
        self.createdAt = createdAt
        self.prompt = prompt
        self.status = status
        self.title = title
        self.type = type
    }
}
