| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- class QueryCustomerUnverifiedBillDetailsTool:
- name = 'query_customer_unverified_bill_details'
- route_path = '/mcp/tools/queryCustomerUnverifiedBillDetails'
- def __init__(self, api_client=None):
- self.api_client = api_client
- def metadata(self):
- return {
- 'name': self.name,
- 'description': (
- '分页查询当前员工有权查看的单个客户未核销账单明细。customer_id必须先从'
- 'list_customer_filter_options取得;主回款跟进中的月份汇总需要展开时再调用本工具。'
- '公司、员工、菜单权限和数据范围由当前设备会话确定,调用方不得覆盖。'
- ),
- 'input_schema': {
- 'type': 'object',
- 'properties': {
- 'customer_id': {'type': 'integer', 'minimum': 1},
- 'page': {
- 'type': 'integer', 'minimum': 1, 'maximum': 100,
- 'default': 1,
- },
- 'limit': {
- 'type': 'integer', 'minimum': 1, 'maximum': 100,
- 'default': 20,
- },
- },
- 'required': ['customer_id'],
- 'additionalProperties': False,
- },
- }
- def call(
- self, customer_id, page=1, limit=20,
- request_id='rq_query_customer_unverified_bill_details',
- ):
- if self.api_client is None:
- raise RuntimeError(
- 'api client is required for query_customer_unverified_bill_details'
- )
- payload = {
- 'customer_id': self._positive_integer(customer_id, 'customer_id'),
- 'page': self._bounded_integer(page, 'page'),
- 'limit': self._bounded_integer(limit, 'limit'),
- }
- return self.api_client.call_tool(
- self.name, self.route_path, payload, request_id
- )
- @staticmethod
- def _positive_integer(value, field):
- if isinstance(value, bool) or not isinstance(value, int) or value < 1:
- raise ValueError('{0} is invalid'.format(field))
- return value
- @classmethod
- def _bounded_integer(cls, value, field):
- value = cls._positive_integer(value, field)
- if value > 100:
- raise ValueError('{0} is invalid'.format(field))
- return value
|