import 'package:flutter/widgets.dart';

/// 圆角常量 — 统一管理项目中的圆角规范
///
/// 避免在业务代码中直接写 `BorderRadius.circular()`。
///
/// ```dart
/// Container(decoration: BoxDecoration(borderRadius: AppRadius.card))
/// ```
///
/// 基础档位：4 / 6 / 8 / 10 / 12 / 14 / 16 / 18 / 20
class AppRadius {
  AppRadius._();

  // ── 基础 Radius ────────────────────────────────────────────────────────

  static const Radius r4 = Radius.circular(4);
  static const Radius r6 = Radius.circular(6);
  static const Radius r8 = Radius.circular(8);
  static const Radius r10 = Radius.circular(10);
  static const Radius r12 = Radius.circular(12);
  static const Radius r14 = Radius.circular(14);
  static const Radius r16 = Radius.circular(16);
  static const Radius r18 = Radius.circular(18);
  static const Radius r20 = Radius.circular(20);

  // ── 组件级圆角（优先使用）─────────────────────────────────────────────

  /// 卡片 — Card / 商品卡片 / 信息卡片
  static const BorderRadius card = BorderRadius.all(r12);

  /// 按钮 — PrimaryButton / SecondaryButton
  static const BorderRadius button = BorderRadius.all(r8);

  /// 弹窗 — Dialog / Modal
  static const BorderRadius dialog = BorderRadius.all(r16);

  // ── 通用 BorderRadius（组件级圆角不满足时使用）──────────────────────────

  static const BorderRadius br4 = BorderRadius.all(r4);
  static const BorderRadius br6 = BorderRadius.all(r6);
  static const BorderRadius br8 = BorderRadius.all(r8);
  static const BorderRadius br10 = BorderRadius.all(r10);
  static const BorderRadius br12 = BorderRadius.all(r12);
  static const BorderRadius br14 = BorderRadius.all(r14);
  static const BorderRadius br16 = BorderRadius.all(r16);
  static const BorderRadius br18 = BorderRadius.all(r18);
  static const BorderRadius br20 = BorderRadius.all(r20);

  // ── 方向性圆角 ──────────────────────────────────────────────────────────

  /// 顶部圆角 — BottomSheet、底部弹窗
  static BorderRadius top(Radius r) => BorderRadius.vertical(top: r);

  /// 底部圆角 — Header、顶部卡片
  static BorderRadius bottom(Radius r) => BorderRadius.vertical(bottom: r);
}
