//
//  ImportedPlayerView.swift
//  PadelClub
//
//  Created by Razmig Sarkissian on 01/03/2024.
//

import SwiftUI

struct ImportedPlayerView: View {
    let player: PlayerHolder
    var index: Int? = nil
    var showFemaleInMaleAssimilation: Bool = false
    
    var body: some View {
        VStack(alignment: .leading) {
            HStack {
                if player.isAnonymous() {
                    Text("Joueur Anonyme")
                } else {
                    Text(player.getLastName().capitalized)
                    Text(player.getFirstName().capitalized)
                }
                if index == nil {
                    Text(player.male ? "♂︎" : "♀︎")
                }
                Spacer()
                if let index {
                    HStack(alignment: .top, spacing: 0) {
                        Text(index.formatted())
                            .foregroundStyle(.secondary)
                            .font(.title3)
                        Text(index.ordinalFormattedSuffix())
                            .foregroundStyle(.secondary)
                            .font(.caption)
                    }
                }
            }
            .font(.title3)
            .lineLimit(1)
            HStack {
                HStack(alignment: .top, spacing: 0) {
                    Text(player.formattedRank()).italic(player.isAssimilated)
                        .font(.title3)
                    if let rank = player.getRank() {
                        Text(rank.ordinalFormattedSuffix()).italic(player.isAssimilated)
                            .font(.caption)
                    }
                }

                if let pts = player.getPoints(), pts > 0 {
                    HStack(alignment: .lastTextBaseline, spacing: 0) {
                        Text(pts.formatted()).font(.title3)
                        Text(" pts").font(.caption)
                    }
                }

                if let tournamentPlayed = player.tournamentPlayed, tournamentPlayed > 0 {
                    HStack(alignment: .lastTextBaseline, spacing: 0) {
                        Text(tournamentPlayed.formatted()).font(.title3)
                        Text(" tournoi" + tournamentPlayed.pluralSuffix).font(.caption)
                    }
                }
            }

            if let assimilatedAsMaleRank = player.getAssimilatedAsMaleRank(), showFemaleInMaleAssimilation {
                HStack(alignment: .top, spacing: 2) {
                    Text("(")
                    Text(assimilatedAsMaleRank.formatted())
                    VStack(alignment: .leading, spacing: 0) {
                        Text("équivalence")
                        Text("messieurs")
                    }
                    .font(.caption)
                    Text(")").font(.title3)
                }
            }

            HStack {
                Text(player.formattedLicense())
                if let computedAge = player.computedAge {
                    Text(computedAge.formatted() + " ans")
                }
            }
            .font(.caption)
            if let clubName = player.clubName {
                Text(clubName)
                    .font(.caption)
            }
            if let ligueName = player.ligueName {
                Text(ligueName)
                    .font(.caption)
            }
        }
    }
}
