import 'package:flutter/material.dart';

abstract interface class GeneralStyle {
  Color? evaluationColor({required int value});

  Color get evaluationGoodColor;
  Color get evaluationMiddleColor;
  Color get evaluationBadColor;

  Color get nextTextColor;

  Color get loginFormTextLabelColor;

  Color get primaryTextLabelColor;
  Color get secondaryTextLabelColor;

  Color get primaryButtonBackgroundColor;
  Color get primaryButtonTextColor;

  Color get secondaryWidgetBackgroundColor;

  Color get pageBackgroundColor;
  Color get deleteCancelButtonBackgroundColor;
  Color get deleteCancelTextColor;

  Color get errorColor;

  String get fontFamily;
}

class GeneralStyleImpl implements GeneralStyle {
  @override
  Color? evaluationColor({required int value}) {
    switch (value) {
      case 1:
        return evaluationGoodColor;
      case 2:
        return evaluationMiddleColor;
      case 3:
        return evaluationBadColor;
    }
    return null;
  }

  @override
  Color get evaluationGoodColor => Colors.green;

  @override
  Color get evaluationMiddleColor => Colors.yellow;

  @override
  Color get evaluationBadColor => Colors.red;

  @override
  Color get loginFormTextLabelColor => const Color(0xFF001689);

  @override
  Color get primaryTextLabelColor => const Color(0xFF0045FF);

  @override
  Color get secondaryTextLabelColor => const Color(0xFF5B5B5B); //2F2F2F

  @override
  Color get primaryButtonBackgroundColor => const Color(0xFF0045FF);

  @override
  Color get secondaryWidgetBackgroundColor => const Color(0xFF001689);

  @override
  Color get primaryButtonTextColor => Colors.white;

  @override
  Color get pageBackgroundColor => const Color(0xFFF5F5F5);

  @override
  Color get deleteCancelButtonBackgroundColor => const Color(0xFFD9D9D9);

  @override
  Color get deleteCancelTextColor => const Color(0xFF1E1E1E);

  @override
  Color get nextTextColor => const Color(0xFF757575);

  @override
  Color get errorColor => const Color(0xFFFF0000);

  @override
  String get fontFamily => 'Panton';
}
