import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:hmg_patient_app_new/core/utils/size_utils.dart';
import 'package:hmg_patient_app_new/extensions/string_extensions.dart';
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
import 'package:hmg_patient_app_new/theme/colors.dart';

Widget buildTime(Duration duration, {bool isHomePage = false}) {
  String twoDigits(int n) => n.toString().padLeft(2, '0');
  final hours = twoDigits(duration.inHours);
  final minutes = twoDigits(duration.inMinutes.remainder(60));
  final seconds = twoDigits(duration.inSeconds.remainder(60));

  return Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
      buildTimeColumn(hours, LocaleKeys.hours.tr()),
      buildTimeColumn(minutes, LocaleKeys.mins.tr()),
      buildTimeColumn(seconds, LocaleKeys.secs.tr(), isLast: true),
    ],
  );
}

Widget buildTimeColumn(String time, String label, {bool isLast = false}) {
  return Column(
    children: [
      Row(
        children: [
          Column(
            children: [
              Row(
                children: [
                  buildDigit(time[0]),
                  SizedBox(width: 2.w),
                  buildDigit(time[1]),
                ],
              ),
              SizedBox(height: 4.h),
              buildLabel(label),
            ],
          ),
          if (!isLast) ...[
            SizedBox(width: 8.w),
            buildTimeSeparator(),
            SizedBox(width: 8.w),
          ],
        ],
      ),
    ],
  );
}

Widget buildDigit(String digit) {
  return Text(
    digit,
    style: TextStyle(
      fontWeight: FontWeight.bold,
      color: Colors.black,
      fontSize: 27.f,
    ),
  );
}

Widget buildLabel(String label) {
  return label.toText12(isBold: false, color: AppColors.textColor, fontWeight: FontWeight.w500);
}

Widget buildTimeSeparator() {
  return Padding(
    padding: EdgeInsets.only(bottom: 16.h),
    child: Text(
      ":",
      style: TextStyle(
        color: Colors.black,
        fontSize: 28.f,
        fontWeight: FontWeight.bold,
      ),
    ),
  );
}
