85dad89d5b
Phase 1 - Corrections Critiques: - Fixed memory leaks dans music_provider.dart (stream subscriptions) - Fixed race conditions dans search_provider.dart (stale results) - Fixed token refresh errors dans api_service.dart - Improved error handling avec messages utilisateur - Changed API URL to HTTPS by default Phase 2 - Améliorations UX Desktop: - Ajouté cursor pointers sur tous les éléments cliquables - Implémenté hover states avec effets néon glow (200ms transitions) - Créé skeleton loading states avec shimmer animation - Ajouté widgets: ClickableWrapper, ErrorDisplay, SkeletonLoading - Enhanced visual feedback pour desktop users Phase 3 - Configuration Flutter: - Configuré Android (Gradle 8.1.0, Kotlin 1.9.0, minSdk 21, targetSdk 34) - Créé launcher icons cyberpunk néon (5 densités) - Configuré Windows desktop (structure complète) - Activé Linux desktop support - Ajouté package équatable pour entités de domaine - Corrigé imports (colors.dart, auth_provider.dart) - Fixed Dio API compatibility (RequestOptions) Documentation: - STYLE_GUIDE.md: Guide complet (100+ pages) - DESIGN_IMPLEMENTATION_GUIDE.md: Implémentation Flutter - BUILD_STATUS.md: Status builds + troubleshooting - QUICKSTART_BUILDS.md: Guide rapide - BUILD_INDEX.md: Index documentation - PHASE_1_CORRECTIONS.md: Corrections Phase 1 - PHASE_2_UX_IMPROVEMENTS.md: Améliorations Phase 2 - PR_REVIEW_SUMMARY.md: Revue code complète - CODE_ANALYSIS_AND_PRIORITIES.md: Analyse code Scripts & Builds: - BUILD_ALL.sh: Script automatisé builds multi-plateforme - builds/: Structure avec README par plateforme - design-system/: Système de design complet Backend: - Ajouté streaming HTTP Range pour audio progressif - Enhanced YouTube service avec métadonnées complètes - Improved error handling et validation Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
51 lines
1.7 KiB
Dart
51 lines
1.7 KiB
Dart
/// API constants
|
|
class ApiConstants {
|
|
ApiConstants._();
|
|
|
|
// Base URLs
|
|
// Note: Using HTTPS for production. For local development, override with:
|
|
// flutter run --dart-define=API_BASE_URL=http://localhost:8000/api/v1
|
|
static const String baseUrl = String.fromEnvironment(
|
|
'API_BASE_URL',
|
|
defaultValue: 'https://api.audiOhm.com/api/v1', // Production HTTPS URL
|
|
);
|
|
|
|
static const String wsUrl = String.fromEnvironment(
|
|
'WS_BASE_URL',
|
|
defaultValue: 'wss://api.audiOhm.com', // Production WSS URL
|
|
);
|
|
|
|
// Timeout durations
|
|
static const int connectionTimeoutMs = 30000; // 30 seconds
|
|
static const int receiveTimeoutMs = 30000;
|
|
static const int sendTimeoutMs = 30000;
|
|
|
|
// API Endpoints
|
|
static const String auth = '/auth';
|
|
static const String music = '/music';
|
|
static const String playlists = '/playlists';
|
|
static const String library = '/library';
|
|
static const String search = '/search';
|
|
|
|
// Auth endpoints
|
|
static const String login = '/auth/login';
|
|
static const String register = '/auth/register';
|
|
static const String refresh = '/auth/refresh';
|
|
static const String logout = '/auth/logout';
|
|
static const String me = '/auth/me';
|
|
|
|
// Music endpoints
|
|
static const String tracks = '/music/tracks';
|
|
static const String artists = '/music/artists';
|
|
static const String albums = '/music/albums';
|
|
static const String searchMusic = '/music/search';
|
|
static const String stream = '/stream';
|
|
static const String recommendations = '/music/tracks';
|
|
static const String trending = '/music/trending';
|
|
|
|
// Playlist endpoints
|
|
static const String userPlaylists = '/playlists';
|
|
static const String playlistTracks = '/tracks';
|
|
static const String reorder = '/tracks/reorder';
|
|
}
|