// Flutter imports:
import 'package:flutter/material.dart';

// Package imports:
import 'package:intl/intl.dart';

///
/// Константы
///
abstract class Const {}

abstract class Storage {
  ///
  /// Хранилище авторизации
  ///
  static const String storageAuth = 'auth';

  ///
  /// Хранилище языка
  ///
  static const String hiveLang = 'lang';

  ///
  /// Ключ для хранилища [ThemeMode]
  ///
  static const String hiveThemeMode = 'hive_theme_mode';
}

///
/// Высчитываемые константы
///
abstract class Compute {
  ///
  /// Денежный форматтер
  ///
  static final NumberFormat currency = NumberFormat.currency(
    locale: 'ru_RU',
    symbol: 'руб.',
    decimalDigits: 0,
  );
}

///
/// Имена ключей хранилищ
///
abstract class StorageKeys {
  ///
  /// Ключ хранения токена авторизации
  ///
  static const String accessToken = 'access.token';

  ///
  /// Ключ хранения токена обновления
  ///
  static const String refreshToken = 'refresh.token';

  ///
  /// Ключ хранения кода языка
  ///
  static const String langCode = 'lang.code';

  ///
  /// Ключ хранения темы приложения
  ///
  static const String themeKey = 'theme_key';

  ///
  /// Ключ хранения селфа
  ///
  static const String profile = 'profile';
}

///
/// Описание некоторых значений по-умолчанию
///
abstract class Defaults {
  ///
  /// Длительность анимаций
  ///
  static const Duration animationDur = Duration(milliseconds: 300);
}

///
/// Цвета приложения
///
abstract class AppColors {
  static const Color white = Color(0xFFFFFFFF);
  static const Color bg = Color(0xfFEFEFF4);
  static const Color primary = Color(0xFF4633BF);
  static const Color disabled = Color(0xFF8B8B8B);
  static const Color gray = Color(0xFFE0E0E0);
  static const Color body_text = Color(0xFF080514);
  static const Color gray_bg = Color(0xFFEFEFF4);
  static const Color secondary = Color(0xFFDBD7F4);
  static const Color danger = Color(0xFFFF5C69);
  static const Color question = Color(0xFFF4D7E2);
  static const Color answer = Color(0xFFD7F4EA);

  static const Color primary_blue = Color(0xFF1837B4);
  static const Color additional_blue = Color(0xFF1837B4);
  static const Color primary_gray = Color(0xFFF1F2F4);
  static const Color primary_red = Color(0xFFFF543D);
  static const Color secondary_red = Color(0xFFFFF2F1);

  static const Color text_gray = Color(0xFF80899C);
  static const Color text_black = Color(0xFF0B0C0E);
  static const Color text_white = Color(0xFFFFFFFF);

  static const Color grayscale_100 = Color(0xFFE2E4E9);

  static const Color info_red = Color(0xFFDA4E4E);
  static const Color info_yellow = Color(0xFFFFF8E0);
  static const Color info_gray = Color(0xFFA8A8A8);
}
