//
//  WaitingListView.swift
//  PadelClub
//
//  Created by razmig on 26/02/2025.
//

import SwiftUI

struct WaitingListView: View {
    @Environment(Tournament.self) var tournament: Tournament
    let teamCount: Int
    
    @ViewBuilder
    var body: some View {
        Text("Attention, l'inscription en ligne est activée et vous avez des équipes inscrites en ligne, en modifiant la structure ces équipes seront intégrées ou retirées de votre sélection d'équipes. Pour l'instant Padel Club ne saura pas les prévenir automatiquement, vous devrez les contacter via l'écran de gestion des inscriptions.")
            .foregroundStyle(.logoRed)
        let selection = tournament.selectedSortedTeams()
        if teamCount > tournament.teamCount {
            Section {
                let teams = tournament.waitingListSortedTeams(selectedSortedTeams: selection)
                    .prefix(teamCount - tournament.teamCount)
                    .filter { $0.hasRegisteredOnline() }
                
                ForEach(teams) { team in
                    NavigationLink {
                        EditingTeamView(team: team)
                            .environment(tournament)
                    } label: {
                        TeamRowView(team: team)
                    }
                }
            } header: {
                Text("Équipes entrantes dans la sélection")
            } footer: {
                Text("Équipes inscrites en ligne à prévenir rentrant dans votre liste")
            }
        }
        
        if teamCount < tournament.teamCount {
            Section {
                let teams = selection.suffix(tournament.teamCount - teamCount)
                    .filter { $0.hasRegisteredOnline() }
                
                ForEach(teams) { team in
                    NavigationLink {
                        EditingTeamView(team: team)
                            .environment(tournament)
                    } label: {
                        TeamRowView(team: team)
                    }
                }
            } header: {
                Text("Équipes sortantes de la sélection")
            } footer: {
                Text("Équipes inscrites en ligne à prévenir retirées de votre liste")
            }
        }
    }
}
