import APIClient
import Foundation

extension FeatureClipDetail.SongActions.State {
    // Updates and returns a Prompt sourced from a saved prompt or returns a prompt based on clip metadata
    func reusablePrompt() -> Prompt {
        if var prompt = savedPrompts[clip.id] {
            prompt.lyrics = clip.prompt
            prompt.styles = clip.tags
            return prompt
        } else {
            // Audio not supported without a saved prompt
            let generationType: GenerationType = .text
            return Prompt(
                title: clip.title,
                lyrics: clip.prompt,
                styles: clip.tags,
                text: clip.gptDescriptionPrompt,
                generationType: generationType
            )
        }
    }
}
