//
//  PodcastEpisodeDetail.swift
//  PodcastsApp
//
//  Created by BREUIL Yohann on 14/05/2023.
//

import SwiftUI

struct PodcastEpisode: View {
    var episode: Episode
    
    var body: some View {
        VStack(alignment: .leading) {
            Text("5 Mai")
                .font(.caption)
                .bold()
                .textCase(.uppercase)
            
            // Title
            if episode.isPlayed {
                Text(episode.title)
                    .font(.title2)
                    .bold()
            } else {
                Text(episode.title)
                    .font(.title3)
            }
             
            // Description
            Text(episode.description)
                .font(.body)
            
            // Actions
            HStack {
                Button(action: {}) {
                    Image(systemName: "play.fill")
                }
                .frame(width: 33, height: 33)
                .foregroundColor(Color.purple)
                .background(Color("#747476"))
                .clipShape(Circle())
                
                if episode.isPlayed {
                    ProgressView(value: 0.2)
                        .frame(width: 70)
                    Text("Il reste \(episode.duration)")
                        .foregroundColor(Color.accentColor)
                        .bold()
                } else {
                    Text("\(episode.duration)")
                        .foregroundColor(Color.accentColor)
                        .bold()
                }
                
                Spacer()
                if (episode.isDownloaded) {
                    Image(systemName: "arrow.down.circle.fill")
                }
                Image(systemName: "ellipsis")
                    
            }
        }
        .padding()
        .frame(width: UIScreen.main.bounds.width, height: 200)
    }
}

struct PodcastEpisodeDetail_Previews: PreviewProvider {
    static var previews: some View {
        let episode1: Episode = Episode(
            title: "L'assistant vocal d'Underscore",
            description: "Texte qui ne décrit pas grand chose mais c'est intéressant de marquer beaucoup de texte juste pour écrire. C'est long mais bon c'est la vie, la vie c'est l'inverse de la mort. Je peux encore écrire pendant longtemts mais là j'ai une flemme.",
            datePublication: Date.now,
            duration: 30,
            isPlayed: true)

        let episode2: Episode = Episode(
            title: "L'assistant vocal d'Underscore",
            description: "Texte qui ne décrit pas grand chose mais c'est intéressant de marquer beaucoup de texte juste pour écrire. C'est long mais bon c'est la vie, la vie c'est l'inverse de la mort. Je peux encore écrire pendant longtemts mais là j'ai une flemme.",
            datePublication: Date.now,
            duration: 30,
            isPlayed: false)
        
        let episode3: Episode = Episode(
            title: "L'assistant vocal d'Underscore",
            description: "Texte qui ne décrit pas grand chose mais c'est intéressant de marquer beaucoup de texte juste pour écrire. C'est long mais bon c'est la vie, la vie c'est l'inverse de la mort. Je peux encore écrire pendant longtemts mais là j'ai une flemme.",
            datePublication: Date.now,
            duration: 30,
            isPlayed: true,
            isDownloaded: true)
        
        Group {
            PodcastEpisode(episode: episode1)
            PodcastEpisode(episode: episode1).preferredColorScheme(.dark)
            
            PodcastEpisode(episode: episode2)
            PodcastEpisode(episode: episode2).preferredColorScheme(.dark)
            
            PodcastEpisode(episode: episode3)
            PodcastEpisode(episode: episode3).preferredColorScheme(.dark)
        }
        
    }
}
