Billing Stripe, link regia mobile e staff solo trasmissione.

Aggiunge fatturazione club, pagina regia condivisibile senza account, roster squadre e rimuove la modalità controller dall'app (v1.1.0).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-29 07:23:13 +02:00
parent 4083bc5dee
commit f4b7be0f80
156 changed files with 5033 additions and 2033 deletions

View File

@@ -22,12 +22,18 @@ class Team {
this.recordingsEnabled = false,
this.phoneDownloadEnabled = false,
this.youtubeEnabled = false,
this.clubName,
this.staffRole,
this.canStream = true,
this.youtubeMode,
});
final String id;
final String name;
final String sport;
final String? clubName;
final String? staffRole;
final bool canStream;
final String? logoUrl;
final bool youtubeConnected;
final String planSlug;
@@ -54,16 +60,10 @@ class Team {
bool get canDownloadOnPhone => phoneDownloadEnabled;
String get staffLimitLabel {
if (maxStaffTransmission == null && maxStaffRegia == null) {
return 'illimitato';
if (maxStaffTransmission == null) {
return 'trasmissione illimitata';
}
final tx = maxStaffTransmission == null
? 'tx ∞'
: 'tx $staffTransmissionUsed/$maxStaffTransmission';
final rg = maxStaffRegia == null
? 'rg ∞'
: 'rg $staffRegiaUsed/$maxStaffRegia';
return '$tx · $rg';
return 'trasmissione $staffTransmissionUsed/$maxStaffTransmission';
}
factory Team.fromJson(Map<String, dynamic> json) {
@@ -71,6 +71,9 @@ class Team {
id: json['id'] as String,
name: json['name'] as String,
sport: json['sport'] as String? ?? 'volleyball',
clubName: json['club_name'] as String?,
staffRole: json['staff_role'] as String?,
canStream: json['can_stream'] as bool? ?? true,
logoUrl: json['logo_url'] as String?,
youtubeConnected: json['youtube_connected'] as bool? ?? false,
planSlug: json['plan_slug'] as String? ?? 'free',