import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:pharmacy_mobile/widgets/text_widget.dart';
import 'package:intl/intl.dart';
import 'package:redacted/redacted.dart';

class ItemCardWidget extends StatelessWidget {
  final String imageUrl;
  final String text;
  final double price;
  final double quantity;
  final bool isLoading;

  const ItemCardWidget(
      {super.key,
      required this.imageUrl,
      required this.text,
      required this.price,
      required this.quantity,
      required this.isLoading});

  @override
  Widget build(BuildContext context) {
    const double imageSize = 180;
    const Color fontColor = Color.fromRGBO(0, 0, 0, 0.9);

    return Card(
        child: ClipRRect(
      borderRadius: BorderRadius.circular(12),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          Image.network(imageUrl,
              fit: BoxFit.cover,
              width: imageSize,
              height: imageSize / 1.4,
              cacheWidth: (imageSize * MediaQuery.of(context).devicePixelRatio).round()),
          const Gap(8),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Row(children: [
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  TextWidget(
                    text: text,
                    size: 10,
                    color: const Color.fromRGBO(0, 0, 0, 1),
                    bold: true,
                  ),
                  TextWidget(
                    text: text,
                    size: 16,
                    color: Colors.black,
                  )
                ],
              ),
              const Gap(92),
              TextWidget(
                text: quantity.toStringAsFixed(0),
                size: 12,
                color: const Color.fromRGBO(39, 39, 39, 1),
              )
            ]),
          ),
          const Gap(8),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Row(
              children: [
                Image.asset('assets/php_logo.webp',
                    fit: BoxFit.cover, height: 12, cacheHeight: (12 * MediaQuery.of(context).devicePixelRatio).round()),
                const Gap(4),
                TextWidget(
                  text: NumberFormat.currency(locale: "en_US", symbol: "").format(price),
                  size: 16,
                  bold: true,
                  color: fontColor,
                ),
              ],
            ),
          )
        ],
      ).redacted(context: context, redact: isLoading),
    ));
  }
}
