You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
4.3 KiB
93 lines
4.3 KiB
//
|
|
// PaymentInfoSheetView.swift
|
|
// PadelClub
|
|
//
|
|
// Created by razmig on 15/01/2025.
|
|
//
|
|
|
|
import SwiftUI
|
|
import PadelClubData
|
|
|
|
struct PaymentInfoSheetView: View {
|
|
@Environment(\.dismiss) private var dismiss
|
|
let paymentConfig: PaymentConfig
|
|
|
|
var paymentInfoText: String {
|
|
let stripePlatformFee = (paymentConfig.stripeFee * 100).formatted(.number.precision(.fractionLength(2)))
|
|
let stripePercentageFee = (RegistrationPaymentMode.stripePercentageFee * 100).formatted(.number.precision(.fractionLength(1)))
|
|
let stripeFixedFee = RegistrationPaymentMode.stripeFixedFee.formatted(.number.precision(.fractionLength(2)))
|
|
|
|
return """
|
|
Comment fonctionnent les paiements en ligne ?
|
|
|
|
Les paiements en ligne permettent aux joueurs de régler les frais de tournoi directement via la plateforme. Voici les informations importantes à connaître :
|
|
|
|
Options de paiement :
|
|
- Le paiement en ligne est activé à la discrétion de l'organisateur
|
|
- L'organisateur peut rendre le paiement en ligne obligatoire ou optionnel
|
|
- Si le paiement n'est pas obligatoire, il est possible de s'inscrire sans payer immédiatement
|
|
- Tous les paiements sont traités via Stripe, une plateforme sécurisée de paiement en ligne
|
|
|
|
Remboursements :
|
|
- Les remboursements en ligne peuvent être activés ou désactivés par l'organisateur
|
|
- Si activés, une date limite de remboursement peut être définie
|
|
- Aucun remboursement en ligne n'est possible après cette date limite
|
|
- Les remboursements en ligne sont automatiquement traités via la même méthode de paiement utilisée
|
|
|
|
Commissions et frais :
|
|
- Padel Club prélève une commission de \(stripePlatformFee)% sur chaque transaction
|
|
- Des frais supplémentaires de Stripe s'appliquent (\(stripePercentageFee)% + \(stripeFixedFee)€ par transaction)
|
|
|
|
Exigences pour les organisateurs :
|
|
- L'organisateur doit avoir un compte Stripe valide pour recevoir les paiements
|
|
- Le compte Stripe doit être vérifié et connecté à Padel Club
|
|
- Sans compte Stripe connecté, l'option de paiement en ligne ne peut pas être activée
|
|
|
|
Sécurité :
|
|
- Toutes les transactions sont sécurisées et chiffrées
|
|
- Padel Club ne stocke pas les informations de carte bancaire
|
|
"""
|
|
}
|
|
|
|
var body: some View {
|
|
NavigationView {
|
|
ScrollView {
|
|
VStack(alignment: .leading, spacing: 20) {
|
|
// Content sections
|
|
ForEach(paymentInfoText.components(separatedBy: "\n\n"), id: \.self) { section in
|
|
if !section.isEmpty {
|
|
VStack(alignment: .leading, spacing: 10) {
|
|
if section.contains(":") {
|
|
Text(section.components(separatedBy: ":")[0])
|
|
.font(.headline)
|
|
.foregroundColor(.primary)
|
|
|
|
let bulletPoints = section.components(separatedBy: "\n-")
|
|
if bulletPoints.count > 1 {
|
|
ForEach(bulletPoints.dropFirst(), id: \.self) { point in
|
|
HStack(alignment: .top) {
|
|
Text("•")
|
|
.padding(.trailing, 5)
|
|
Text(point)
|
|
.fixedSize(horizontal: false, vertical: true)
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
Text(section)
|
|
}
|
|
}
|
|
.padding(.bottom, 10)
|
|
}
|
|
}
|
|
}
|
|
.padding()
|
|
}
|
|
.navigationBarItems(trailing: Button("Fermer") {
|
|
dismiss()
|
|
})
|
|
.toolbarBackground(.visible, for: .navigationBar)
|
|
.navigationTitle("Paiement en ligne")
|
|
}
|
|
}
|
|
}
|
|
|