Initial commit: monorepo Match Live TV.

Rails API, app Flutter, infrastruttura Docker/MediaMTX, sito marketing e documentazione di deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-26 17:45:37 +02:00
commit bba6df52c0
381 changed files with 20599 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
class ApiException implements Exception {
ApiException({
required this.message,
this.statusCode,
this.errorCode,
this.billingUrl,
});
final String message;
final int? statusCode;
final String? errorCode;
final String? billingUrl;
bool get isPremiumRequired => errorCode == 'premium_required';
@override
String toString() => message;
static ApiException? fromDio(dynamic error) {
// ignore: avoid_dynamic_calls
final response = error.response;
if (response == null) return null;
final data = response.data;
if (data is! Map<String, dynamic>) return null;
return ApiException(
message: data['error'] as String? ?? 'Errore di rete',
statusCode: response.statusCode as int?,
errorCode: data['error_code'] as String?,
billingUrl: data['billing_url'] as String?,
);
}
}