Update admin_promocodes.py

This commit is contained in:
Egor
2026-01-19 09:31:41 +03:00
committed by GitHub
parent 6775b06b2e
commit 10fea329ad

View File

@@ -249,6 +249,18 @@ def _validate_create_payload(payload: PromoCodeCreateRequest) -> None:
"Subscription days must be positive for this promo code type"
)
if payload.type == PromoCodeType.DISCOUNT:
if payload.balance_bonus_kopeks <= 0 or payload.balance_bonus_kopeks > 100:
raise HTTPException(
status.HTTP_400_BAD_REQUEST,
"Discount percent must be between 1 and 100"
)
if payload.subscription_days <= 0:
raise HTTPException(
status.HTTP_400_BAD_REQUEST,
"Discount validity hours must be positive"
)
if normalized_valid_from and normalized_valid_until and normalized_valid_from > normalized_valid_until:
raise HTTPException(
status.HTTP_400_BAD_REQUEST,
@@ -289,6 +301,18 @@ def _validate_update_payload(payload: PromoCodeUpdateRequest, promocode: PromoCo
"Subscription days must be positive for this promo code type"
)
if new_type == PromoCodeType.DISCOUNT:
if balance_bonus <= 0 or balance_bonus > 100:
raise HTTPException(
status.HTTP_400_BAD_REQUEST,
"Discount percent must be between 1 and 100"
)
if subscription_days <= 0:
raise HTTPException(
status.HTTP_400_BAD_REQUEST,
"Discount validity hours must be positive"
)
valid_from = (
_normalize_datetime(payload.valid_from)
if payload.valid_from is not None