"""Exact approved Site DTF price ladders; integer BRL cents at the boundary. Quantity/grade must be supplied by an authenticated commercial reviewer. This module does not inspect artwork or perform pre-flight. """ from decimal import Decimal, ROUND_CEILING TIERS = { 'file': [(90,1490),(75,1620),(60,1750),(40,1870),(0,1990)], 'avulsa': [(90,2490),(75,2620),(60,2750),(40,2870),(0,2990)], 'uvfile': [(90,6990),(75,7390),(60,7790),(40,8190),(0,8590)], 'uv': [(90,8390),(75,8790),(60,9190),(40,9590),(0,9990)], } def price(mode: str, metres: str, grade: int) -> dict: length = Decimal(str(metres)) if mode not in TIERS or not length.is_finite() or not 0 < length <= 12000: raise ValueError('Invalid product or length') if isinstance(grade, bool) or not isinstance(grade, int) or not 0 <= grade <= 100: raise ValueError('Grade must be an integer between 0 and 100') billed = max(Decimal('1'), (length * 10).to_integral_value(rounding=ROUND_CEILING) / 10) unit = next(cents for minimum, cents in TIERS[mode] if grade >= minimum) return {'mode': mode, 'metres': str(length), 'grade': grade, 'billed_metres': str(billed), 'unit_cents': unit, 'total_cents': int(billed * unit), 'discount_cents': int(billed * (TIERS[mode][-1][1] - unit))}