//
//  SongIteration.swift
//  vibes
//
//  Data model for One Song iterations
//

import Foundation

struct SongIteration: Identifiable {
    let id: UUID
    let prompt: String
    let title: String?
    let waveformData: [Float]  // Mock for now, will be real audio data later
    let audioURL: URL?
    let audioAssetName: String  // Name of the audio asset (e.g., "song1", "song2")
    let createdAt: Date
    let waveformSeed: Int  // Unique seed for waveform variation
    let suggestionChips: [String]  // Contextual suggestions for this iteration

    init(
        id: UUID = UUID(),
        prompt: String,
        title: String? = nil,
        waveformData: [Float] = [],
        audioURL: URL? = nil,
        audioAssetName: String,
        createdAt: Date = Date(),
        waveformSeed: Int = Int.random(in: 0...10000),
        suggestionChips: [String] = []
    ) {
        self.id = id
        self.prompt = prompt
        self.title = title
        self.waveformData = waveformData
        self.audioURL = audioURL
        self.audioAssetName = audioAssetName
        self.createdAt = createdAt
        self.waveformSeed = waveformSeed
        self.suggestionChips = suggestionChips
    }
}
