Ship fleet, availability, pricing, dispatch, routing, tracking, and settlement on delivery-service 0.10.8.0 with migrations and phase tests green. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1019 B
Python
39 lines
1019 B
Python
"""Pricing validators — Phase 10.4."""
|
|
from __future__ import annotations
|
|
|
|
from decimal import Decimal
|
|
|
|
from shared.exceptions import AppError
|
|
|
|
from app.validators.foundation import validate_currency_code, validate_non_empty
|
|
|
|
|
|
def validate_pricing_name(name: str) -> str:
|
|
return validate_non_empty(name, "name")
|
|
|
|
|
|
def validate_base_amount(amount: Decimal) -> Decimal:
|
|
if amount <= 0:
|
|
raise AppError(
|
|
"مبلغ پایه باید بزرگتر از صفر باشد",
|
|
status_code=422,
|
|
error_code="invalid_base_amount",
|
|
)
|
|
return amount
|
|
|
|
|
|
def validate_line_amount(amount: Decimal) -> Decimal:
|
|
return validate_base_amount(amount)
|
|
|
|
|
|
def validate_capability_name(name: str) -> str:
|
|
return validate_non_empty(name, "name")
|
|
|
|
|
|
def validate_bundle_name(name: str) -> str:
|
|
return validate_non_empty(name, "name")
|
|
|
|
|
|
def validate_currency(currency_code: str) -> str:
|
|
return validate_currency_code(currency_code)
|