"""自动生成的 API 客户端 - 订单管理

从 OpenAPI 规范生成，基于 df-test-framework v3.38.0 最佳实践。
类名: DingDanGuanLiAPI
模块标识: ding_dan_guan_li

v3.38.0 特性:
- ✅ 强类型方法签名（Pydantic 请求/响应模型）
- ✅ BaseAPI 自动序列化请求模型
- ✅ BaseAPI 自动解析响应模型
- ✅ @api_class 装饰器自动注册 fixture
- ✅ IDE 智能提示和类型检查

v3.39.0 新增:
- ✅ 支持增量合并（--force 选项保留用户扩展）
- ✅ 用户扩展区域保留自定义代码

使用示例:
    # 方式1: 直接实例化
    from demo_proj.models.requests.ding_dan_guan_li import XxxRequest
    from demo_proj.models.responses.ding_dan_guan_li import XxxResponse

    api = DingDanGuanLiAPI(http_client)
    request = XxxRequest(field="value")
    response: XxxResponse = api.xxx_method(request)

    # 方式2: 使用 fixture（推荐）
    def test_example(ding_dan_guan_li_api):
        request = XxxRequest(field="value")
        response = ding_dan_guan_li_api.xxx_method(request)
        assert response.code == 200
"""

from typing import Any

from df_test_framework import BaseAPI, HttpClient
from df_test_framework.testing.decorators import api_class

from ..models.requests.ding_dan_guan_li import (
    CreateOrderRequest,
)
from ..models.responses.ding_dan_guan_li import (
    CreateOrderResponse,
    ListOrdersResponse,
)


# ========== AUTO-GENERATED START ==========
# 此区域由脚手架自动生成，重新生成时会被更新


@api_class("ding_dan_guan_li_api")
class DingDanGuanLiAPI(BaseAPI):
    """订单管理 API 客户端

    自动从 OpenAPI 规范生成。

    接口前缀: /orders
    Fixture 名称: ding_dan_guan_li_api
    """

    def __init__(self, http_client: HttpClient):
        super().__init__(http_client)
        self.base_path = "/orders"

    def create_order(self, request: CreateOrderRequest) -> CreateOrderResponse:
        """创建订单

        Args:
            request: CreateOrderRequest 请求模型

        Returns:
            CreateOrderResponse: 响应数据
        """
        return self.post(self.base_path + "/", json=request, model=CreateOrderResponse)

    def list_orders(self, page: int | None = None) -> ListOrdersResponse:
        """订单列表

        Args:
            page: page（可选）

        Returns:
            ListOrdersResponse: 响应数据
        """
        return self.get(self.base_path + "/", params={"page": page}, model=ListOrdersResponse)



# ========== AUTO-GENERATED END ==========


# ========== USER EXTENSIONS ==========
# 在此区域添加自定义代码，重新生成时会保留


__all__ = ["DingDanGuanLiAPI"]
