
import '../models/sake_item.dart';
import 'pricing_helper.dart';

class PricingCalculator {
  // Round up to nearest 50 yen
  static int roundUpTo50(double price) {
    if (price <= 0) return 0;
    return ((price / 50).ceil() * 50).toInt();
  }

  // Calculate Selling Price
  static int calculatePrice(SakeItem item, {double? globalMarkup}) {
    // 1. Manual Override takes precedence
    if (item.userData.price != null) {
      return item.userData.price!;
    }

    // 2. If no cost, cannot calculate
    if (item.userData.costPrice == null) {
      return 0;
    }

    // 3. Determine Markup
    // If globalMarkup is provided (e.g. from Settings preview), use it?
    // Or normally use item.markup.
    final double markup = globalMarkup ?? item.userData.markup;

    // 4. Calculate
    final double rawPrice = item.userData.costPrice! * markup;

    // 5. Rounding
    return roundUpTo50(rawPrice);
  }

  // 価格フォーマット (PricingHelperに委譲)
  static String formatPrice(int price) {
    return PricingHelper.formatPrice(price);
  }
}
