import 'package:flutter/material.dart';

class RatingStyle {
  final Color backgroundColor;
  final Color titleColor;
  final String closeImage;
  final Color summaryTextColor;
  final Color closeImageColor;

  final String step1Title;
  final String step1Image;

  final String step2SorryTitle;
  final String step2ThankYouTitle;
  final String step2SorrySummary;
  final String step2ThankYouSummary;

  final String? step2ThankYouEmoji;
  final String? step2SorryEmoji;

  final Color editorBarBackground;
  final String inputHint;
  final String ratingFullImage;
  final String ratingEmptyImage;
  final String ratingHalfImage;

  final Color editorTextColor;
  final Color editorHintColor;
  final String submitText;
  final Color submitButtonColor;
  final Color submitTextColor;

  const RatingStyle({
    required this.backgroundColor,
    required this.step1Title,
    required this.titleColor,
    required this.step1Image,
    required this.step2SorryTitle,
    required this.step2ThankYouTitle,
    required this.step2ThankYouSummary,
    required this.step2SorrySummary,
    required this.summaryTextColor,
    required this.editorTextColor,
    required this.editorBarBackground,
    required this.inputHint,
    required this.closeImage,
    required this.closeImageColor,
    required this.ratingFullImage,
    required this.ratingEmptyImage,
    required this.ratingHalfImage,
    required this.submitText,
    required this.submitButtonColor,
    required this.submitTextColor,
    required this.editorHintColor,
    this.step2ThankYouEmoji,
    this.step2SorryEmoji,
  });

  RatingStyle.light(
      {required String step1Title,
      required String step1Image,
      required String closeImage,
      required String step2SorryTitle,
      required String step2ThankYouTitle,
      required String step2SorrySummary,
      required String step2ThankYouSummary,
      required String inputHint,
      required String ratingFullImage,
      required String ratingEmptyImage,
      required String ratingHalfImage,
      required String submitText,
      required Color submitButtonColor,
      String? step2ThankYouEmoji,
      String? step2SorryEmoji})
      : this.backgroundColor = Colors.white,
        this.titleColor = Colors.black,
        this.summaryTextColor = const Color(0xE6000000),
        this.editorBarBackground = const Color(0xFFF1F1F1),
        this.submitTextColor = Colors.white,
        this.step1Title = step1Title,
        this.step1Image = step1Image,
        this.step2SorrySummary = step2SorrySummary,
        this.step2ThankYouSummary = step2ThankYouSummary,
        this.step2ThankYouTitle = step2ThankYouTitle,
        this.step2SorryTitle = step2SorryTitle,
        this.inputHint = inputHint,
        this.ratingFullImage = ratingFullImage,
        this.ratingHalfImage = ratingHalfImage,
        this.ratingEmptyImage = ratingEmptyImage,
        this.submitText = submitText,
        this.submitButtonColor = submitButtonColor,
        this.closeImage = closeImage,
        this.editorHintColor = const Color(0xffbfbfbf),
        this.editorTextColor = const Color(0xe6000000),
        this.closeImageColor = Colors.black,
        this.step2ThankYouEmoji = step2ThankYouEmoji,
        this.step2SorryEmoji = step2SorryEmoji;

  RatingStyle.dark(
      {required String step1Title,
      required String step1Image,
      required String closeImage,
      required String step2SorryTitle,
      required String step2ThankYouTitle,
      required String step2SorrySummary,
      required String step2ThankYouSummary,
      required String inputHint,
      required String ratingFullImage,
      required String ratingEmptyImage,
      required String ratingHalfImage,
      required String submitText,
      required Color submitButtonColor,
      String? step2ThankYouEmoji,
      String? step2SorryEmoji})
      : this.backgroundColor = const Color(0xFF252525),
        this.titleColor = Colors.white,
        this.summaryTextColor = Colors.white,
        this.editorBarBackground = Colors.white.withOpacity(0.1),
        this.submitTextColor = Colors.white,
        this.step1Title = step1Title,
        this.step1Image = step1Image,
        this.step2SorrySummary = step2SorrySummary,
        this.step2ThankYouSummary = step2SorrySummary,
        this.step2ThankYouTitle = step2ThankYouTitle,
        this.step2SorryTitle = step2SorryTitle,
        this.inputHint = inputHint,
        this.ratingFullImage = ratingFullImage,
        this.ratingHalfImage = ratingHalfImage,
        this.ratingEmptyImage = ratingEmptyImage,
        this.submitText = submitText,
        this.submitButtonColor = submitButtonColor,
        this.closeImage = closeImage,
        this.editorHintColor = Colors.white.withOpacity(0.4),
        this.editorTextColor = Colors.white,
        this.closeImageColor = Colors.white,
        this.step2ThankYouEmoji = step2ThankYouEmoji,
        this.step2SorryEmoji = step2SorryEmoji;
}

class GoingStoreStyle {
  final Color backgroundColor;
  final String summary;
  final Color summaryTextColor;
  final Color? unRatedColor;
  final Color? gLowColor;

  const GoingStoreStyle(
      {this.backgroundColor = const Color(0xe3000000),
      required this.summary,
      this.summaryTextColor = const Color(0xffffffff),
      this.unRatedColor,
      this.gLowColor});

  GoingStoreStyle.dark(String summary, {Color? unRatedColor, Color? gLowColor})
      : this.backgroundColor = const Color(0xCC000000),
        this.summary = summary,
        this.summaryTextColor = const Color(0xffffffff),
        this.unRatedColor = unRatedColor,
        this.gLowColor = gLowColor;
}

class IosThankYouStyle {
  final String thankYouImage;
  final String thankYouTitle;
  final String thankYouSummary;
  final String buttonText;
  final Color buttonBgColor;
  final Color buttonTextColor;
  final Color titleColor;
  final Color summaryTextColor;
  final Color backgroundColor;
  final VoidCallback? okClick;
  final VoidCallback? closeClick;
  final Color closeImageColor;
  final String closeImage;
   Color? barrierColor;

  IosThankYouStyle(
      {required this.thankYouImage,
      required this.thankYouTitle,
      required this.thankYouSummary,
      required this.buttonBgColor,
      required this.buttonText,
      required this.buttonTextColor,
      required this.backgroundColor,
      required this.closeImageColor,
      required this.closeImage,
      required this.summaryTextColor,
      required this.titleColor,
      this.okClick,
      this.closeClick,
       this.barrierColor});

  IosThankYouStyle.light(
      {required String thankYouImage,
      required String title,
      required String summary,
      required String closeImage,
      required String buttonText,
      VoidCallback? okClick,
      VoidCallback? closeClick,
      Color? buttonBgColor,
      Color? barrierColor})
      : this.thankYouImage = thankYouImage,
        this.thankYouTitle = title,
        this.thankYouSummary = summary,
        this.closeImage = closeImage,
        this.buttonText = buttonText,
        this.backgroundColor = Colors.white,
        this.closeImageColor = Colors.black,
        this.titleColor = const Color(0xff191B32),
        this.summaryTextColor = const Color(0xff191B32),
        this.okClick = okClick,
        this.closeClick = closeClick,
        this.buttonTextColor = Colors.white,
        this.buttonBgColor = buttonBgColor ?? const Color(0xff008B54),
        this.barrierColor = const Color(0xAF000000);
}
