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

import Foundation

public struct SearchQuerySchema: Codable, Equatable {
    public var boostedUserHandles: [String]?
    public var excludeSongIds: [String]?
    public var filters: Filters?
    public var fromIndex: Int?
    public var genre: String?
    public var isInstrumental: Bool?
    public var isLiked: Bool?
    public var isPublic: Bool?
    public var isSunoShort: Bool?
    public var itemType: ItemTypeEnum?
    public var languages: [String]?
    public var maximumCreateTime: String?
    public var modelVersion: String?
    public var name: String?
    /// SearchOrderEnum
    public var order: SearchOrderEnum?
    public var projectId: String?
    /// SearchRankingEnum
    public var rankBy: SearchRankingEnum?
    /// SearchTypeEnum
    public var searchType: SearchTypeEnum
    public var size: Int?
    public var songId: String?
    public var term: String?
    public var userId: Int?
    public var userIds: [Int]?
    public var vector: [Double]?

    public init(boostedUserHandles: [String]? = nil, excludeSongIds: [String]? = nil, filters: Filters? = nil, fromIndex: Int? = nil, genre: String? = nil, isInstrumental: Bool? = nil, isLiked: Bool? = nil, isPublic: Bool? = nil, isSunoShort: Bool? = nil, itemType: ItemTypeEnum? = nil, languages: [String]? = nil, maximumCreateTime: String? = nil, modelVersion: String? = nil, name: String? = nil, order: SearchOrderEnum? = nil, projectId: String? = nil, rankBy: SearchRankingEnum? = nil, searchType: SearchTypeEnum, size: Int? = nil, songId: String? = nil, term: String? = nil, userId: Int? = nil, userIds: [Int]? = nil, vector: [Double]? = nil) {
        self.boostedUserHandles = boostedUserHandles
        self.excludeSongIds = excludeSongIds
        self.filters = filters
        self.fromIndex = fromIndex
        self.genre = genre
        self.isInstrumental = isInstrumental
        self.isLiked = isLiked
        self.isPublic = isPublic
        self.isSunoShort = isSunoShort
        self.itemType = itemType
        self.languages = languages
        self.maximumCreateTime = maximumCreateTime
        self.modelVersion = modelVersion
        self.name = name
        self.order = order
        self.projectId = projectId
        self.rankBy = rankBy
        self.searchType = searchType
        self.size = size
        self.songId = songId
        self.term = term
        self.userId = userId
        self.userIds = userIds
        self.vector = vector
    }
}
