import 'package:flutter/material.dart';

import 'package:badges/badges.dart' as badges;

import 'package:pshared/models/payment/status.dart';


class OperationStatusBadge extends StatelessWidget {
  final OperationStatus status;

  const OperationStatusBadge({super.key, required this.status});

  Color _badgeColor(BuildContext context) {
    final scheme = Theme.of(context).colorScheme;
    switch (status) {
      case OperationStatus.processing:
        return scheme.primary;
      case OperationStatus.success:
        return scheme.secondary;
      case OperationStatus.error:
        return scheme.error;
    }
  }

  Color _textColor(Color background) {
    // computeLuminance returns 0 for black, 1 for white
    return background.computeLuminance() > 0.5 ? Colors.black : Colors.white;
  }  

  @override
  Widget build(BuildContext context) {
    final label = status.localized(context);
    final bg = _badgeColor(context);
    final fg = _textColor(bg);

    return badges.Badge(
      badgeStyle: badges.BadgeStyle(
        shape: badges.BadgeShape.square,
        badgeColor: bg,
        borderRadius: BorderRadius.circular(12),      // fully rounded
        padding: const EdgeInsets.symmetric(
          horizontal: 6, vertical: 2                     // tighter padding
        ),
      ),
      badgeContent: Text(
        label.toUpperCase(),                           // or keep sentence case
        style: TextStyle(
          color: fg,
          fontSize: 11,                                 // smaller text
          fontWeight: FontWeight.w500,                  // medium weight
        ),
      ),
    );
  }
}