fix(public): T2-03 add order idempotency and rate limit
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled

This commit is contained in:
Hermes Agent
2026-07-05 22:35:13 +08:00
parent a7e502bd62
commit c1e1d3e82d
4 changed files with 97 additions and 4 deletions

View File

@@ -61,6 +61,7 @@ class PublicOrderCreate(BaseModel):
customer_phone: Optional[str] = Field(default=None, min_length=1)
customer_wechat: Optional[str] = None
customer_email: Optional[str] = None
idempotency_key: Optional[str] = Field(default=None, min_length=1, max_length=128)
candidate_name: str = Field(min_length=1)
candidate_province: Optional[str] = None
notes: Optional[str] = None
@@ -91,6 +92,7 @@ def create_public_order(dao: OrdersDAO, request: PublicOrderCreate) -> Order:
order = Order(
id=generate_order_id(),
source="web",
external_id=f"idempotency:{request.idempotency_key}" if request.idempotency_key else None,
service_version=request.service_version,
amount_cents=service_price_for(request.service_version),
status="pending",