parent
3ea327cad2
commit
629dfe5120
@ -0,0 +1,89 @@ |
|||||||
|
// |
||||||
|
// OnlineWaitingListFaqSheetView.swift |
||||||
|
// PadelClub |
||||||
|
// |
||||||
|
// Created by razmig on 10/04/2025. |
||||||
|
// |
||||||
|
|
||||||
|
import SwiftUI |
||||||
|
|
||||||
|
struct OnlineWaitingListFaqSheetView: View { |
||||||
|
@Environment(\.dismiss) private var dismiss |
||||||
|
let faqText: String = |
||||||
|
""" |
||||||
|
FAQ pour les Arbitres - Confirmation des Équipes |
||||||
|
|
||||||
|
Comment fonctionne le délai de confirmation pour les équipes ? |
||||||
|
|
||||||
|
Notre système calcule automatiquement un délai de confirmation adapté pour les équipes en fonction de trois facteurs principaux : |
||||||
|
- Proximité du tournoi : Plus le tournoi est proche, plus le délai est court |
||||||
|
- Pression de la liste d'attente : Plus il y a d'équipes en attente, plus le délai est court |
||||||
|
- Heures ouvrables : Les délais respectent généralement les heures ouvrables (8h-21h) |
||||||
|
|
||||||
|
Quels sont les délais typiques de confirmation ? |
||||||
|
- Tournoi dans moins de 24h → 30 minutes |
||||||
|
- Tournoi dans moins de 48h → 60 minutes (1 heure) |
||||||
|
- Tournoi dans moins de 72h → 120 minutes (2 heures) |
||||||
|
- Tournoi dans plus de 72h → 240 minutes (4 heures) |
||||||
|
|
||||||
|
Ces délais peuvent être raccourcis en fonction du nombre d'équipes en liste d'attente : |
||||||
|
- 30+ équipes en attente → 30 minutes |
||||||
|
- 20+ équipes en attente → 60 minutes (1 heure) |
||||||
|
- 10+ équipes en attente → 120 minutes (2 heures) |
||||||
|
|
||||||
|
Y a-t-il des exceptions à ces règles ? |
||||||
|
|
||||||
|
Oui, dans les situations urgentes : |
||||||
|
- Si le tournoi commence dans moins de 24h, les restrictions d'heures ouvrables sont ignorées |
||||||
|
- Si le tournoi commence dans moins de 12h, toutes les restrictions sont assouplies avec un minimum de 30 minutes de délai |
||||||
|
|
||||||
|
Comment les délais sont-ils arrondis ? |
||||||
|
|
||||||
|
Les délais sont toujours arrondis à la demi-heure supérieure pour plus de simplicité. |
||||||
|
|
||||||
|
Que se passe-t-il si le délai tombe en dehors des heures ouvrables ? |
||||||
|
|
||||||
|
Si le délai calculé tombe en dehors des heures ouvrables (avant 8h ou après 21h), il est automatiquement reporté au jour ouvrable suivant à 8h du matin. |
||||||
|
""" |
||||||
|
var body: some View { |
||||||
|
NavigationView { |
||||||
|
ScrollView { |
||||||
|
VStack(alignment: .leading, spacing: 20) { |
||||||
|
// Content sections |
||||||
|
ForEach(faqText.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("FAQ - Liste d'attente") |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,90 @@ |
|||||||
|
// |
||||||
|
// PaymentInfoSheetView.swift |
||||||
|
// PadelClub |
||||||
|
// |
||||||
|
// Created by razmig on 15/01/2025. |
||||||
|
// |
||||||
|
|
||||||
|
import SwiftUI |
||||||
|
|
||||||
|
struct PaymentInfoSheetView: View { |
||||||
|
@Environment(\.dismiss) private var dismiss |
||||||
|
let paymentInfoText: String = |
||||||
|
""" |
||||||
|
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 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 n'est possible après cette date limite |
||||||
|
- Les remboursements 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 0,75% sur chaque transaction |
||||||
|
- Cette commission couvre les frais de service et de maintenance de la plateforme |
||||||
|
- Des frais supplémentaires de Stripe peuvent s'appliquer (environ 1,4% + 0,25€ par transaction) |
||||||
|
- Le montant total des frais est indiqué clairement avant validation du paiement |
||||||
|
|
||||||
|
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 |
||||||
|
- Les fonds sont directement versés sur le compte bancaire associé au compte Stripe de l'organisateur |
||||||
|
|
||||||
|
Sécurité : |
||||||
|
- Toutes les transactions sont sécurisées et chiffrées |
||||||
|
- Padel Club ne stocke pas les informations de carte bancaire |
||||||
|
- La conformité RGPD et PCI-DSS est assurée par Stripe |
||||||
|
|
||||||
|
En cas de problème avec un paiement, veuillez contacter l'organisateur du tournoi ou le support Padel Club. |
||||||
|
""" |
||||||
|
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") |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue