import 'package:flutter/material.dart';
import 'package:shadcn_ui/shadcn_ui.dart';
import '../../core/theme/app_color_scheme.dart';
import '../../core/theme/app_spacing.dart';

/// 币种卡片组件 - 用于显示币种信息
///
/// 设计规则:
/// - 使用 surface 层次而非边框
/// - 圆角: xl (16px) 卡片, sm (4px) 涨跌标签
/// - 涨跌标签: 15% 透明度背景
class CoinCard extends StatelessWidget {
  final String code;
  final String name;
  final String price;
  final String change;
  final bool isUp;
  final String? icon;
  final VoidCallback? onTap;

  const CoinCard({
    super.key,
    required this.code,
    required this.name,
    required this.price,
    required this.change,
    this.isUp = true,
    this.icon,
    this.onTap,
  });

  @override
  Widget build(BuildContext context) {
    final theme = ShadTheme.of(context);

    return ShadCard(
      padding: const EdgeInsets.all(AppSpacing.md),
      child: InkWell(
        onTap: onTap,
        child: Row(
          children: [
            // 图标 - 圆形
            Container(
              width: 44,
              height: 44,
              decoration: BoxDecoration(
                color: theme.colorScheme.primary.withValues(alpha: 0.1),
                shape: BoxShape.circle,
              ),
              child: Center(
                child: Text(
                  icon ?? code.substring(0, 1),
                  style: TextStyle(
                    fontSize: 20,
                    color: theme.colorScheme.primary,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              ),
            ),
            const SizedBox(width: AppSpacing.sm),
            // 名称
            Expanded(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text(
                    '$code/USDT',
                    style: theme.textTheme.large.copyWith(
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                  Text(
                    name,
                    style: theme.textTheme.muted,
                  ),
                ],
              ),
            ),
            // 涨跌幅 - Dynamic Chip
            Container(
              padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6),
              decoration: BoxDecoration(
                color: getChangeBackgroundColor(isUp),
                borderRadius: BorderRadius.circular(AppRadius.sm),
              ),
              child: Text(
                change,
                style: TextStyle(
                  color: getChangeColor(isUp),
                  fontWeight: FontWeight.w600,
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}
