import type { BillingParameterDimension, BillingParameterTier, BillingPriceRule } from "@/lib/types"; export type PriceEditTarget = { dimensionKey?: string; tierValue?: string; label: string; markupMultiplier: number; }; export function groupedPriceRuleSections(rules: BillingPriceRule[]) { return rules.map((rule, index) => ({ rule, label: rule.provider === "seedream" && rule.capability === "image.generate" ? rule.conditions?.layerDecomposition === true ? "图层拆分" : "基础生图" : rule.variantKey || `规则 ${index + 1}`, dimensions: rule.parameterDimensions?.filter((dimension) => dimension.tiers.length > 0) || [] })); } export function priceTierEditTarget(dimension: BillingParameterDimension, tier: BillingParameterTier, businessLabel?: string): PriceEditTarget { return { dimensionKey: dimension.key, tierValue: String(tier.value), label: [businessLabel, dimension.label || dimension.key, tier.label || String(tier.value)].filter(Boolean).join(" · "), markupMultiplier: tier.markupMultiplier }; }