forked from eatvio/eatvio_app
73 lines
3.0 KiB
Dart
73 lines
3.0 KiB
Dart
/// Константы приложения
|
||
class AppConstants {
|
||
// Размеры
|
||
static const double defaultPadding = 16.0;
|
||
static const double smallPadding = 8.0;
|
||
static const double largePadding = 24.0;
|
||
static const double extraLargePadding = 32.0;
|
||
|
||
// Радиусы
|
||
static const double defaultBorderRadius = 8.0;
|
||
static const double smallBorderRadius = 4.0;
|
||
static const double largeBorderRadius = 16.0;
|
||
|
||
// Высоты
|
||
static const double defaultButtonHeight = 48.0;
|
||
static const double smallButtonHeight = 36.0;
|
||
static const double largeButtonHeight = 56.0;
|
||
|
||
// Ширины
|
||
static const double maxContentWidth = 400.0;
|
||
static const double minContentWidth = 280.0;
|
||
|
||
// Анимации
|
||
static const Duration defaultAnimationDuration = Duration(milliseconds: 300);
|
||
static const Duration fastAnimationDuration = Duration(milliseconds: 150);
|
||
static const Duration slowAnimationDuration = Duration(milliseconds: 500);
|
||
|
||
// Таймауты
|
||
static const Duration defaultTimeout = Duration(seconds: 30);
|
||
static const Duration shortTimeout = Duration(seconds: 10);
|
||
static const Duration longTimeout = Duration(minutes: 2);
|
||
|
||
// Лимиты
|
||
static const int maxImageSize = 5 * 1024 * 1024; // 5MB
|
||
static const int maxVideoSize = 100 * 1024 * 1024; // 100MB
|
||
static const int maxTextLength = 1000;
|
||
static const int maxTitleLength = 100;
|
||
static const int maxDescriptionLength = 500;
|
||
|
||
// Пагинация
|
||
static const int defaultPageSize = 20;
|
||
static const int smallPageSize = 10;
|
||
static const int largePageSize = 50;
|
||
|
||
// Форматы
|
||
static const List<String> supportedImageFormats = ['jpg', 'jpeg', 'png', 'webp'];
|
||
static const List<String> supportedVideoFormats = ['mp4', 'mov', 'avi'];
|
||
|
||
// Регулярные выражения
|
||
static const String emailRegex = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$';
|
||
static const String phoneRegex = r'^\+?[1-9]\d{1,14}$';
|
||
static const String urlRegex = r'^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$';
|
||
|
||
// Сообщения
|
||
static const String defaultErrorMessage = 'Произошла ошибка. Попробуйте еще раз.';
|
||
static const String networkErrorMessage = 'Проблема с подключением к интернету.';
|
||
static const String timeoutErrorMessage = 'Превышено время ожидания.';
|
||
static const String unknownErrorMessage = 'Неизвестная ошибка.';
|
||
|
||
// Ключи для SharedPreferences
|
||
static const String welcomeScreenShownKey = 'welcomeScreenWasShowed';
|
||
static const String userTokenKey = 'userToken';
|
||
static const String userDataKey = 'userData';
|
||
static const String settingsKey = 'settings';
|
||
|
||
// API endpoints
|
||
static const String apiVersion = '/api';
|
||
static const String authEndpoint = '/auth';
|
||
static const String usersEndpoint = '/users';
|
||
static const String postsEndpoint = '/posts';
|
||
static const String commentsEndpoint = '/comments';
|
||
}
|