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

import Foundation

public struct PersonaMetadataResponseSchema: Codable, Equatable, Identifiable {
    /// GeneratedClipSchema
    public var clip: GeneratedClipSchema
    public var description: String
    public var followerCount: Int?
    public var id: String
    public var imageS3Id: String?
    public var isFollowing: Bool
    public var isLoved: Bool
    public var isOwned: Bool
    public var isPublic: Bool
    public var isPublicApproved: Bool
    public var isSunoPersona: Bool
    public var isTrashed: Bool
    public var isVoxPersona: Bool
    public var name: String
    public var rootClipId: String
    public var upvoteCount: Int?
    public var userDisplayName: String
    public var userHandle: String
    public var userImageUrl: String

    public init(clip: GeneratedClipSchema, description: String, followerCount: Int? = nil, id: String, imageS3Id: String? = nil, isFollowing: Bool? = nil, isLoved: Bool? = nil, isOwned: Bool? = nil, isPublic: Bool? = nil, isPublicApproved: Bool? = nil, isSunoPersona: Bool, isTrashed: Bool? = nil, isVoxPersona: Bool? = nil, name: String, rootClipId: String, upvoteCount: Int? = nil, userDisplayName: String, userHandle: String, userImageUrl: String) {
        self.clip = clip
        self.description = description
        self.followerCount = followerCount
        self.id = id
        self.imageS3Id = imageS3Id
        self.isFollowing = isFollowing ?? false
        self.isLoved = isLoved ?? false
        self.isOwned = isOwned ?? false
        self.isPublic = isPublic ?? false
        self.isPublicApproved = isPublicApproved ?? false
        self.isSunoPersona = isSunoPersona
        self.isTrashed = isTrashed ?? false
        self.isVoxPersona = isVoxPersona ?? false
        self.name = name
        self.rootClipId = rootClipId
        self.upvoteCount = upvoteCount
        self.userDisplayName = userDisplayName
        self.userHandle = userHandle
        self.userImageUrl = userImageUrl
    }
}
