open_lark/core/
endpoints_original.rs

1//! API端点常量定义模块
2//!
3//! 本模块集中定义飞书开放平台的所有API端点路径常量,旨在:
4//! 1. 减少字符串分配 - 避免每次API调用时重新创建路径字符串
5//! 2. 防止拼写错误 - 统一管理所有API路径,编译期检查
6//! 3. 便于维护升级 - 集中管理,方便API版本升级和路径变更
7//!
8//! # 性能优化
9//!
10//! 使用静态字符串常量可以显著减少内存分配:
11//! ```rust
12//! use open_lark::core::endpoints::Endpoints;
13//!
14//! // 优化前:每次调用时动态分配字符串
15//! let dynamic = "/open-apis/workplace/v1/workplace_access_data/search".to_string();
16//!
17//! // 优化后:使用静态常量,必要时再转换为 String
18//! let optimized = Endpoints::WORKPLACE_ACCESS_DATA_SEARCH;
19//! assert_eq!(optimized, dynamic.as_str());
20//! ```
21//!
22//! # 组织结构
23//!
24//! API端点按服务模块分组:
25//! - `workplace` - 工作台相关API
26//! - `vc` - 视频会议相关API  
27//! - `im` - 即时消息相关API
28//! - `drive` - 云盘相关API
29//! - 等等...
30
31/// 飞书API端点路径常量定义
32///
33/// 所有API端点的静态字符串常量,按服务分组组织。
34/// 使用模块结构提供更好的命名空间和组织结构。
35pub struct Endpoints;
36
37impl Endpoints {
38    // ==================== 工作台服务端点 ====================
39
40    /// 搜索工作台访问数据
41    pub const WORKPLACE_ACCESS_DATA_SEARCH: &'static str =
42        "/open-apis/workplace/v1/workplace_access_data/search";
43
44    /// 搜索自定义工作台访问数据
45    pub const WORKPLACE_CUSTOM_ACCESS_DATA_SEARCH: &'static str =
46        "/open-apis/workplace/v1/custom_workplace_access_data/search";
47
48    /// 搜索工作台小部件访问数据
49    pub const WORKPLACE_WIDGET_ACCESS_DATA_SEARCH: &'static str =
50        "/open-apis/workplace/v1/custom_workplace_widget_access_data/search";
51
52    // ==================== 招聘相关端点 ====================
53
54    // ===== 候选人管理端点 =====
55
56    /// 申请管理
57    pub const HIRE_V1_APPLICATIONS: &'static str = "/open-apis/hire/v1/applications";
58    pub const HIRE_V1_APPLICATION_GET: &'static str =
59        "/open-apis/hire/v1/applications/{application_id}";
60    pub const HIRE_V1_APPLICATION_REJECT: &'static str =
61        "/open-apis/hire/v1/applications/{application_id}/reject";
62    pub const HIRE_V1_APPLICATION_INTERVIEWS: &'static str =
63        "/open-apis/hire/v1/applications/{application_id}/interviews";
64    pub const HIRE_V1_APPLICATION_OFFER: &'static str =
65        "/open-apis/hire/v1/applications/{application_id}/offer";
66    pub const HIRE_V1_APPLICATION_ADVANCE: &'static str =
67        "/open-apis/hire/v1/applications/{application_id}/advance";
68    pub const HIRE_V1_APPLICATION_EVALUATIONS: &'static str =
69        "/open-apis/hire/v1/applications/{application_id}/evaluations";
70
71    /// 面试管理
72    pub const HIRE_V1_INTERVIEWS: &'static str = "/open-apis/hire/v1/interviews";
73    pub const HIRE_V1_INTERVIEW_GET: &'static str = "/open-apis/hire/v1/interviews/{interview_id}";
74    pub const HIRE_V1_INTERVIEW_CANCEL: &'static str =
75        "/open-apis/hire/v1/interviews/{interview_id}/cancel";
76    pub const HIRE_V1_INTERVIEW_RESCHEDULE: &'static str =
77        "/open-apis/hire/v1/interviews/{interview_id}/reschedule";
78    pub const HIRE_V1_INTERVIEW_EVALUATIONS: &'static str =
79        "/open-apis/hire/v1/interview_evaluations";
80    pub const HIRE_V1_INTERVIEW_EVALUATIONS_BY_ID: &'static str =
81        "/open-apis/hire/v1/interviews/{interview_id}/evaluations";
82    pub const HIRE_V1_INTERVIEW_ARRANGEMENTS: &'static str =
83        "/open-apis/hire/v1/interview_arrangements";
84
85    /// Offer 管理
86    pub const HIRE_V1_OFFERS: &'static str = "/open-apis/hire/v1/offers";
87    pub const HIRE_V1_OFFER_GET: &'static str = "/open-apis/hire/v1/offers/{offer_id}";
88    pub const HIRE_V1_OFFER_SEND: &'static str = "/open-apis/hire/v1/offers/{offer_id}/send";
89    pub const HIRE_V1_OFFER_WITHDRAW: &'static str =
90        "/open-apis/hire/v1/offers/{offer_id}/withdraw";
91
92    /// 人才管理
93    pub const HIRE_V1_TALENTS: &'static str = "/open-apis/hire/v1/talents";
94    pub const HIRE_V1_TALENT_GET: &'static str = "/open-apis/hire/v1/talents/{talent_id}";
95    pub const HIRE_V1_TALENT_APPLICATIONS: &'static str =
96        "/open-apis/hire/v1/talents/{talent_id}/applications";
97    pub const HIRE_V1_TALENTS_BATCH_IMPORT: &'static str =
98        "/open-apis/hire/v1/talents/batch_import";
99
100    /// 人才库管理
101    pub const HIRE_V1_TALENT_POOLS: &'static str = "/open-apis/hire/v1/talent_pools";
102    pub const HIRE_V1_TALENT_POOL_GET: &'static str = "/open-apis/hire/v1/talent_pools/{pool_id}";
103    pub const HIRE_V1_TALENT_POOL_TALENTS: &'static str =
104        "/open-apis/hire/v1/talent_pools/{pool_id}/talents";
105    pub const HIRE_V1_TALENT_POOL_TALENT_GET: &'static str =
106        "/open-apis/hire/v1/talent_pools/{pool_id}/talents/{talent_id}";
107
108    // ===== 招聘配置端点 =====
109
110    /// 职位管理
111    pub const HIRE_V1_JOBS: &'static str = "/open-apis/hire/v1/jobs";
112    pub const HIRE_V1_JOB_COMBINED_CREATE: &'static str = "/open-apis/hire/v1/jobs/combined_create";
113    pub const HIRE_V1_JOB_COMBINED_UPDATE: &'static str =
114        "/open-apis/hire/v1/jobs/{job_id}/combined_update";
115    pub const HIRE_V1_JOB_GET_DETAIL: &'static str = "/open-apis/hire/v1/jobs/{job_id}/get_detail";
116    pub const HIRE_V1_JOB_CLOSE: &'static str = "/open-apis/hire/v1/jobs/{job_id}/close";
117    pub const HIRE_V1_JOB_OPEN: &'static str = "/open-apis/hire/v1/jobs/{job_id}/open";
118
119    /// 招聘流程
120    pub const HIRE_V1_JOB_PROCESSES: &'static str = "/open-apis/hire/v1/job_processes";
121    pub const HIRE_V1_JOB_PROCESS_GET: &'static str =
122        "/open-apis/hire/v1/job_processes/{process_id}";
123
124    /// 地点管理
125    pub const HIRE_V1_LOCATIONS: &'static str = "/open-apis/hire/v1/locations";
126    pub const HIRE_V1_LOCATIONS_QUERY: &'static str = "/open-apis/hire/v1/locations/query";
127
128    /// Offer 设置
129    pub const HIRE_V1_OFFER_SETTINGS: &'static str = "/open-apis/hire/v1/offer_settings";
130    pub const HIRE_V1_OFFER_SETTING_GET: &'static str =
131        "/open-apis/hire/v1/offer_settings/{settings_id}";
132
133    /// 科目管理
134    pub const HIRE_V1_SUBJECTS: &'static str = "/open-apis/hire/v1/subjects";
135    pub const HIRE_V1_SUBJECT_GET: &'static str = "/open-apis/hire/v1/subjects/{subject_id}";
136    pub const HIRE_V1_SUBJECT_ENABLE: &'static str =
137        "/open-apis/hire/v1/subjects/{subject_id}/enable";
138    pub const HIRE_V1_SUBJECT_DISABLE: &'static str =
139        "/open-apis/hire/v1/subjects/{subject_id}/disable";
140
141    /// 职位要求
142    pub const HIRE_V1_JOB_REQUIREMENTS: &'static str = "/open-apis/hire/v1/job_requirements";
143    pub const HIRE_V1_JOB_REQUIREMENT_GET: &'static str =
144        "/open-apis/hire/v1/job_requirements/{requirement_id}";
145
146    /// 权限管理
147    pub const HIRE_V1_ROLES: &'static str = "/open-apis/hire/v1/roles";
148    pub const HIRE_V1_ROLE_GET: &'static str = "/open-apis/hire/v1/roles/{role_id}";
149    pub const HIRE_V1_USER_ROLES: &'static str = "/open-apis/hire/v1/users/{user_id}/roles";
150
151    /// 面试设置
152    pub const HIRE_V1_INTERVIEW_SETTINGS: &'static str = "/open-apis/hire/v1/interview_settings";
153    pub const HIRE_V1_INTERVIEW_SETTING_GET: &'static str =
154        "/open-apis/hire/v1/interview_settings/{settings_id}";
155
156    /// 应用配置
157    pub const HIRE_V1_TALENT_TAGS: &'static str = "/open-apis/hire/v1/talent_tags";
158    pub const HIRE_V1_REGISTRATION_FORMS: &'static str = "/open-apis/hire/v1/registration_forms";
159
160    // ===== 获取候选人端点 =====
161
162    /// 代理渠道
163    pub const HIRE_V1_AGENCIES: &'static str = "/open-apis/hire/v1/agencies";
164    pub const HIRE_V1_AGENCY_CONSULTANTS: &'static str = "/open-apis/hire/v1/agency_consultants";
165    pub const HIRE_V1_AGENCY_CONSULTANTS_BY_ID: &'static str =
166        "/open-apis/hire/v1/agencies/{agency_id}/consultants";
167    pub const HIRE_V1_AGENCY_RECOMMENDATIONS: &'static str =
168        "/open-apis/hire/v1/agency_recommendations";
169
170    /// 外部系统
171    pub const HIRE_V1_EXTERNAL_SYSTEMS: &'static str = "/open-apis/hire/v1/external_systems";
172    pub const HIRE_V1_EXTERNAL_SYSTEMS_SYNC_TASKS: &'static str =
173        "/open-apis/hire/v1/external_systems/sync_tasks";
174    pub const HIRE_V1_EXTERNAL_SYSTEMS_SYNC_RECORDS: &'static str =
175        "/open-apis/hire/v1/external_systems/sync_records";
176    pub const HIRE_V1_EXTERNAL_SYSTEMS_CANDIDATES_IMPORT: &'static str =
177        "/open-apis/hire/v1/external_systems/candidates/import";
178    pub const HIRE_V1_EXTERNAL_SYSTEMS_CANDIDATES: &'static str =
179        "/open-apis/hire/v1/external_systems/candidates";
180
181    /// 内推渠道
182    pub const HIRE_V1_REFERRALS: &'static str = "/open-apis/hire/v1/referrals";
183    pub const HIRE_V1_REFERRAL_GET: &'static str = "/open-apis/hire/v1/referrals/{referral_id}";
184    pub const HIRE_V1_REFERRAL_GRANT_REWARD: &'static str =
185        "/open-apis/hire/v1/referrals/{referral_id}/grant_reward";
186    pub const HIRE_V1_REFERRAL_REWARD_SETTINGS: &'static str =
187        "/open-apis/hire/v1/referral_reward_settings";
188
189    /// 内推账户相关端点
190    pub const HIRE_V1_REFERRAL_ACCOUNTS: &'static str = "/open-apis/hire/v1/referral_accounts";
191    pub const HIRE_V1_REFERRAL_ACCOUNT_GET: &'static str =
192        "/open-apis/hire/v1/referral_accounts/{user_id}";
193    pub const HIRE_REFERRAL_ACCOUNT_BALANCE: &'static str =
194        "/open-apis/hire/v1/referral_accounts/{user_id}/balance";
195    pub const HIRE_REFERRAL_ACCOUNT_ENABLE: &'static str =
196        "/open-apis/hire/v1/referral_accounts/{user_id}/enable";
197    pub const HIRE_REFERRAL_ACCOUNT_DISABLE: &'static str =
198        "/open-apis/hire/v1/referral_accounts/{user_id}/disable";
199    pub const HIRE_REFERRAL_INCOME_RECORDS: &'static str =
200        "/open-apis/hire/v1/referral_income_records";
201    pub const HIRE_REFERRAL_WITHDRAWALS: &'static str = "/open-apis/hire/v1/referral_withdrawals";
202    pub const HIRE_REFERRAL_WITHDRAWAL_APPROVE: &'static str =
203        "/open-apis/hire/v1/referral_withdrawals/{withdrawal_id}/approve";
204    pub const HIRE_REFERRAL_STATISTICS: &'static str = "/open-apis/hire/v1/referral_statistics";
205
206    /// 网站渠道
207    pub const HIRE_V1_WEBSITE_JOBS: &'static str = "/open-apis/hire/v1/website/jobs";
208    pub const HIRE_V1_WEBSITE_JOBS_PUBLISH: &'static str =
209        "/open-apis/hire/v1/website/jobs/publish";
210    pub const HIRE_V1_WEBSITE_JOB_UNPUBLISH: &'static str =
211        "/open-apis/hire/v1/website/jobs/{job_id}/unpublish";
212    pub const HIRE_V1_WEBSITE_APPLICATIONS: &'static str =
213        "/open-apis/hire/v1/website/applications";
214    pub const HIRE_V1_WEBSITE_CONFIGURATION: &'static str =
215        "/open-apis/hire/v1/website/configuration";
216    pub const HIRE_V1_WEBSITE_STATISTICS: &'static str = "/open-apis/hire/v1/website/statistics";
217    pub const HIRE_V1_WEBSITE_APPLICATION_CONVERT: &'static str =
218        "/open-apis/hire/v1/website/applications/{website_application_id}/convert";
219
220    // ===== 生态对接端点 =====
221
222    /// 背景调查
223    pub const HIRE_V1_BACKGROUND_CHECK_PACKAGES: &'static str =
224        "/open-apis/hire/v1/background_check_packages";
225    pub const HIRE_V1_BACKGROUND_CHECK_ORDERS: &'static str =
226        "/open-apis/hire/v1/background_check_orders";
227    pub const HIRE_V1_BACKGROUND_CHECK_ORDER_GET: &'static str =
228        "/open-apis/hire/v1/background_check_orders/{order_id}";
229    pub const HIRE_V1_BACKGROUND_CHECK_ORDER_CANCEL: &'static str =
230        "/open-apis/hire/v1/background_check_orders/{order_id}/cancel";
231    pub const HIRE_V1_BACKGROUND_CHECK_ORDER_REPORT: &'static str =
232        "/open-apis/hire/v1/background_check_orders/{order_id}/report";
233    pub const HIRE_V1_BACKGROUND_CHECK_ORDERS_BATCH: &'static str =
234        "/open-apis/hire/v1/background_check_orders/batch";
235
236    /// 考试管理
237    pub const HIRE_V1_EXAM_PAPERS: &'static str = "/open-apis/hire/v1/exam_papers";
238    pub const HIRE_V1_EXAM_ARRANGEMENTS: &'static str = "/open-apis/hire/v1/exam_arrangements";
239    pub const HIRE_V1_EXAM_RECORDS: &'static str = "/open-apis/hire/v1/exam_records";
240    pub const HIRE_V1_EXAM_RECORD_GET: &'static str = "/open-apis/hire/v1/exam_records/{record_id}";
241    pub const HIRE_V1_EXAM_RECORD_CANCEL: &'static str =
242        "/open-apis/hire/v1/exam_records/{record_id}/cancel";
243    pub const HIRE_V1_EXAM_RECORD_RESCHEDULE: &'static str =
244        "/open-apis/hire/v1/exam_records/{record_id}/reschedule";
245    pub const HIRE_V1_EXAM_SUBMISSIONS: &'static str = "/open-apis/hire/v1/exam_submissions";
246    pub const HIRE_V1_EXAM_STATISTICS: &'static str = "/open-apis/hire/v1/exam_statistics";
247
248    // ===== 其他模块端点 =====
249
250    /// 附件管理
251    pub const HIRE_V1_ATTACHMENTS: &'static str = "/open-apis/hire/v1/attachments";
252    pub const HIRE_V1_ATTACHMENT_GET: &'static str =
253        "/open-apis/hire/v1/attachments/{attachment_id}";
254    pub const HIRE_V1_ATTACHMENT_UPLOAD: &'static str = "/open-apis/hire/v1/attachments/upload";
255    pub const HIRE_V1_ATTACHMENT_DOWNLOAD: &'static str =
256        "/open-apis/hire/v1/attachments/{attachment_id}/download";
257    pub const HIRE_V1_ATTACHMENT_PREVIEW: &'static str =
258        "/open-apis/hire/v1/attachments/{attachment_id}/preview";
259    pub const HIRE_V1_ATTACHMENTS_BATCH_DOWNLOAD: &'static str =
260        "/open-apis/hire/v1/attachments/batch_download";
261    pub const HIRE_V1_ATTACHMENTS_BATCH_DELETE: &'static str =
262        "/open-apis/hire/v1/attachments/batch_delete";
263    pub const HIRE_V1_ATTACHMENT_STATISTICS: &'static str =
264        "/open-apis/hire/v1/attachment_statistics";
265
266    /// 入职管理
267    pub const HIRE_V1_ONBOARDINGS: &'static str = "/open-apis/hire/v1/onboardings";
268
269    /// 获取入职进度详情 (需要使用 EndpointBuilder::replace_param 替换 {onboarding_id} 和 {progress_id})
270    pub const HIRE_V1_ONBOARDING_PROGRESS: &'static str =
271        "/open-apis/hire/v1/onboardings/{onboarding_id}/progress/{progress_id}";
272
273    // 动态路径常量 - 用于 agency, external_system, referral 等模块
274    pub const HIRE_V1_AGENCIES_CONSULTANTS: &'static str =
275        "/open-apis/hire/v1/agencies/{agency_id}/consultants";
276    pub const HIRE_V1_AGENCY_RECOMMENDATION_CONFIRM: &'static str =
277        "/open-apis/hire/v1/agency_recommendations/{recommendation_id}/confirm";
278    pub const HIRE_V1_AGENCY_RECOMMENDATION_REJECT: &'static str =
279        "/open-apis/hire/v1/agency_recommendations/{recommendation_id}/reject";
280    pub const HIRE_V1_EXTERNAL_SYSTEMS_CANDIDATES_CONVERT: &'static str =
281        "/open-apis/hire/v1/external_systems/candidates/{external_candidate_id}/convert";
282    pub const HIRE_V1_EXTERNAL_SYSTEMS_TEST_CONNECTION: &'static str =
283        "/open-apis/hire/v1/external_systems/{system_config_id}/test_connection";
284
285    /// 获取收藏的推荐规则
286    pub const WORKPLACE_APP_RECOMMEND_FAVOURITE: &'static str =
287        "/open-apis/workplace/v1/app_recommend_rule/favourite";
288
289    /// 获取推荐的推荐规则
290    pub const WORKPLACE_APP_RECOMMEND_RECOMMEND: &'static str =
291        "/open-apis/workplace/v1/app_recommend_rule/recommend";
292
293    /// 获取推荐规则列表
294    pub const WORKPLACE_APP_RECOMMEND_LIST: &'static str =
295        "/open-apis/workplace/v1/app_recommend_rule/list";
296
297    // ==================== 视频会议服务端点 ====================
298    // 注意:VC相关端点已迁移至 core::endpoints::vc 模块
299
300    // ==================== Lingo 知识管理服务端点 ====================
301
302    // 分类管理
303    /// 获取词典分类
304    pub const LINGO_CLASSIFICATION_LIST: &'static str = "/open-apis/lingo/v1/classifications";
305
306    // 草稿管理
307    /// 创建草稿
308    pub const LINGO_DRAFT_CREATE: &'static str = "/open-apis/lingo/v1/drafts";
309
310    /// 更新草稿 (需要使用 EndpointBuilder::replace_param 替换 {draft_id})
311    pub const LINGO_DRAFT_UPDATE: &'static str = "/open-apis/lingo/v1/drafts/{draft_id}";
312
313    // 词条管理
314    /// 创建词条
315    pub const LINGO_ENTITY_CREATE: &'static str = "/open-apis/lingo/v1/entities";
316
317    /// 获取词条详情 (需要使用 EndpointBuilder::replace_param 替换 {entity_id})
318    pub const LINGO_ENTITY_GET: &'static str = "/open-apis/lingo/v1/entities/{entity_id}";
319
320    /// 更新词条 (需要使用 EndpointBuilder::replace_param 替换 {entity_id})
321    pub const LINGO_ENTITY_UPDATE: &'static str = "/open-apis/lingo/v1/entities/{entity_id}";
322
323    /// 搜索词条
324    pub const LINGO_ENTITY_SEARCH: &'static str = "/open-apis/lingo/v1/entities/search";
325
326    /// 词条匹配
327    pub const LINGO_ENTITY_MATCH: &'static str = "/open-apis/lingo/v1/entities/match";
328
329    /// 提取可能的词条
330    pub const LINGO_ENTITY_HIGHLIGHT: &'static str = "/open-apis/lingo/v1/entities/highlight";
331
332    // 文件管理
333    /// 上传文件
334    pub const LINGO_FILE_UPLOAD: &'static str = "/open-apis/lingo/v1/file/upload";
335
336    /// 下载文件 (需要使用 EndpointBuilder::replace_param 替换 {file_token})
337    pub const LINGO_FILE_DOWNLOAD: &'static str = "/open-apis/lingo/v1/file/download/{file_token}";
338
339    // 知识库管理
340    /// 获取知识库列表
341    pub const LINGO_REPO_LIST: &'static str = "/open-apis/lingo/v1/repos";
342
343    // ==================== 租户管理服务端点 ====================
344
345    // 租户信息
346    // 注意:租户相关端点已迁移至 core::endpoints::tenant 模块
347
348    // ==================== 即时消息服务端点 ====================
349
350    // 消息管理 - v1版本
351    /// 发送消息
352    pub const IM_V1_SEND_MESSAGE: &'static str = "/open-apis/im/v1/messages";
353
354    /// 获取消息详情
355    pub const IM_V1_GET_MESSAGE: &'static str = "/open-apis/im/v1/messages/{message_id}";
356
357    /// 更新消息
358    pub const IM_V1_UPDATE_MESSAGE: &'static str = "/open-apis/im/v1/messages/{message_id}";
359
360    /// 删除消息
361    pub const IM_V1_DELETE_MESSAGE: &'static str = "/open-apis/im/v1/messages/{message_id}";
362
363    /// 消息已读回执
364    pub const IM_V1_READ_MESSAGE: &'static str =
365        "/open-apis/im/v1/messages/{message_id}/read_users";
366
367    /// 获取消息列表
368    pub const IM_V1_LIST_MESSAGE: &'static str = "/open-apis/im/v1/messages";
369
370    // 聊天管理
371    /// 创建聊天
372    pub const IM_CHAT_CREATE: &'static str = "/open-apis/im/v1/chats";
373
374    /// 获取聊天信息
375    pub const IM_CHAT_GET: &'static str = "/open-apis/im/v1/chats/{chat_id}";
376
377    /// 更新聊天信息
378    pub const IM_CHAT_UPDATE: &'static str = "/open-apis/im/v1/chats/{chat_id}";
379
380    /// 解散聊天
381    pub const IM_CHAT_DELETE: &'static str = "/open-apis/im/v1/chats/{chat_id}";
382
383    /// 获取聊天成员列表
384    pub const IM_CHAT_MEMBERS: &'static str = "/open-apis/im/v1/chats/{chat_id}/members";
385
386    /// 将用户或机器人拉入聊天
387    pub const IM_CHAT_ADD_MEMBERS: &'static str = "/open-apis/im/v1/chats/{chat_id}/members";
388
389    /// 将用户或机器人移出聊天
390    pub const IM_CHAT_REMOVE_MEMBERS: &'static str =
391        "/open-apis/im/v1/chats/{chat_id}/members/batch_delete";
392
393    // 回复消息
394    /// 回复消息
395    pub const IM_V1_REPLY_MESSAGE: &'static str = "/open-apis/im/v1/messages/{message_id}/reply";
396
397    // 消息表情回应
398    /// 添加消息表情回应
399    pub const IM_V1_MESSAGE_REACTIONS: &'static str =
400        "/open-apis/im/v1/messages/{message_id}/reactions";
401
402    /// 删除消息表情回应
403    pub const IM_V1_DELETE_MESSAGE_REACTION: &'static str =
404        "/open-apis/im/v1/messages/{message_id}/reactions/{reaction_id}";
405
406    // 批量消息
407    /// 批量发送消息
408    pub const IM_V1_BATCH_MESSAGES: &'static str = "/open-apis/im/v1/batch_messages";
409
410    /// 批量撤回消息
411    pub const IM_V1_DELETE_BATCH_MESSAGE: &'static str =
412        "/open-apis/im/v1/batch_messages/{batch_message_id}";
413
414    /// 查询批量发送消息进度
415    pub const IM_V1_BATCH_MESSAGE_PROGRESS: &'static str =
416        "/open-apis/im/v1/batch_messages/{batch_message_id}/get_progress";
417
418    /// 查询批量发送消息已读状态
419    pub const IM_V1_BATCH_MESSAGE_READ_USER: &'static str =
420        "/open-apis/im/v1/batch_messages/{batch_message_id}/read_user";
421
422    // 紧急消息/消息加急
423    /// 应用内加急
424    pub const IM_V1_MESSAGE_URGENT_APP: &'static str =
425        "/open-apis/im/v1/messages/{message_id}/urgent_app";
426
427    /// 短信加急
428    pub const IM_V1_MESSAGE_URGENT_SMS: &'static str =
429        "/open-apis/im/v1/messages/{message_id}/urgent_sms";
430
431    /// 电话加急
432    pub const IM_V1_MESSAGE_URGENT_PHONE: &'static str =
433        "/open-apis/im/v1/messages/{message_id}/urgent_phone";
434
435    // 延时更新卡片
436    /// 延时更新卡片
437    pub const IM_V1_MESSAGE_DELAY_UPDATE: &'static str =
438        "/open-apis/im/v1/messages/{message_id}/delay_update";
439
440    // Pin 消息
441    /// 创建Pin消息
442    pub const IM_V1_PINS: &'static str = "/open-apis/im/v1/pins";
443
444    /// 删除Pin消息
445    pub const IM_V1_DELETE_PIN: &'static str = "/open-apis/im/v1/pins/{pin_id}";
446
447    // 文件和图片
448    /// 上传文件
449    pub const IM_V1_FILES: &'static str = "/open-apis/im/v1/files";
450
451    /// 下载文件
452    pub const IM_V1_DOWNLOAD_FILE: &'static str = "/open-apis/im/v1/files/{file_key}";
453
454    /// 上传图片
455    pub const IM_V1_IMAGES: &'static str = "/open-apis/im/v1/images";
456
457    /// 下载图片
458    pub const IM_V1_DOWNLOAD_IMAGE: &'static str = "/open-apis/im/v1/images/{image_key}";
459
460    // URL预览
461    /// 批量更新消息URL预览
462    pub const IM_V1_MESSAGE_URL_PREVIEW_BATCH_UPDATE: &'static str =
463        "/open-apis/im/v1/messages/{message_id}/url_preview/batch_update";
464
465    // 基础消息操作
466    /// 获取消息详情 (需要使用 EndpointBuilder::replace_param 替换 {message_id})
467    pub const IM_V1_MESSAGE_GET: &'static str = "/open-apis/im/v1/messages/{message_id}";
468
469    /// 更新消息内容 (需要使用 EndpointBuilder::replace_param 替换 {message_id})
470    pub const IM_V1_MESSAGE_PATCH: &'static str = "/open-apis/im/v1/messages/{message_id}";
471
472    /// 删除消息 (需要使用 EndpointBuilder::replace_param 替换 {message_id})
473    pub const IM_V1_MESSAGE_DELETE: &'static str = "/open-apis/im/v1/messages/{message_id}";
474
475    // V2 API 端点
476    // App feed card
477    /// 应用信息流卡片
478    pub const IM_V2_APP_FEED_CARD: &'static str = "/open-apis/im/v2/app_feed_card";
479
480    /// 获取应用信息流卡片
481    pub const IM_V2_GET_APP_FEED_CARD: &'static str = "/open-apis/im/v2/app_feed_card/{card_id}";
482
483    /// 删除应用信息流卡片
484    pub const IM_V2_DELETE_APP_FEED_CARD: &'static str = "/open-apis/im/v2/app_feed_card/{card_id}";
485
486    // Groups bots
487    /// 群机器人时间敏感性设置
488    pub const IM_V2_GROUPS_BOTS_TIME_SENSITIVE: &'static str =
489        "/open-apis/im/v2/groups-bots/bot_time_sentive";
490
491    /// 更新群机器人消息
492    pub const IM_V2_GROUPS_BOTS_UPDATE: &'static str =
493        "/open-apis/im/v2/groups-bots/{message_id}/update";
494
495    /// 批量更新群机器人设置
496    pub const IM_V2_GROUPS_BOTS_PATCH: &'static str = "/open-apis/im/v2/groups-bots/patch";
497
498    // ==================== 云盘服务端点 ====================
499
500    // 文件管理 - v1版本
501    /// 获取文件元信息
502    pub const DRIVE_V1_GET_META: &'static str = "/open-apis/drive/v1/metas/{token}";
503
504    /// 新建文件夹
505    pub const DRIVE_V1_CREATE_FOLDER: &'static str = "/open-apis/drive/v1/files/create_folder";
506
507    /// 获取文件夹中的文件清单
508    pub const DRIVE_V1_LIST_FILES: &'static str = "/open-apis/drive/v1/files";
509
510    /// 复制文件或文件夹
511    pub const DRIVE_V1_COPY: &'static str = "/open-apis/drive/v1/files/{file_token}/copy";
512
513    /// 移动文件或文件夹
514    pub const DRIVE_V1_MOVE: &'static str = "/open-apis/drive/v1/files/{file_token}/move";
515
516    /// 删除文件或文件夹
517    pub const DRIVE_V1_DELETE: &'static str = "/open-apis/drive/v1/files/{file_token}";
518
519    /// 获取文件下载链接
520    pub const DRIVE_V1_DOWNLOAD: &'static str = "/open-apis/drive/v1/files/{file_token}/download";
521
522    /// 分片上传文件-预上传
523    pub const DRIVE_V1_UPLOAD_PREPARE: &'static str = "/open-apis/drive/v1/files/upload_prepare";
524
525    /// 分片上传文件-分片上传
526    pub const DRIVE_V1_UPLOAD_PART: &'static str = "/open-apis/drive/v1/files/upload_part";
527
528    /// 分片上传文件-完成上传
529    pub const DRIVE_V1_UPLOAD_FINISH: &'static str = "/open-apis/drive/v1/files/upload_finish";
530
531    // ==================== 审批服务端点 ====================
532
533    // ===== 审批管理端点 =====
534
535    /// 创建审批定义
536    pub const APPROVAL_V4_APPROVALS: &'static str = "/open-apis/approval/v4/approvals";
537
538    /// 获取审批定义 (需要使用 EndpointBuilder::replace_param 替换 {approval_code})
539    pub const APPROVAL_V4_APPROVAL_GET: &'static str =
540        "/open-apis/approval/v4/approvals/{approval_code}";
541
542    // ===== 外部审批端点 =====
543
544    /// 创建外部审批
545    pub const APPROVAL_V4_EXTERNAL_APPROVALS: &'static str =
546        "/open-apis/approval/v4/external_approvals";
547
548    /// 获取外部审批 (需要使用 EndpointBuilder::replace_param 替换 {approval_code})
549    pub const APPROVAL_V4_EXTERNAL_APPROVAL_GET: &'static str =
550        "/open-apis/approval/v4/external_approvals/{approval_code}";
551
552    // ===== 文件上传端点 =====
553
554    /// 上传文件
555    pub const APPROVAL_V4_FILE_UPLOAD: &'static str = "/open-apis/approval/v4/files/upload";
556
557    // ===== 实例管理端点 =====
558
559    /// 创建审批实例
560    pub const APPROVAL_V4_INSTANCES: &'static str = "/open-apis/approval/v4/instances";
561
562    /// 获取审批实例列表
563    pub const APPROVAL_V4_INSTANCES_LIST: &'static str = "/open-apis/approval/v4/instances";
564
565    /// 获取审批实例 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
566    pub const APPROVAL_V4_INSTANCE_GET: &'static str =
567        "/open-apis/approval/v4/instances/{instance_code}";
568
569    /// 取消审批实例 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
570    pub const APPROVAL_V4_INSTANCE_CANCEL: &'static str =
571        "/open-apis/approval/v4/instances/{instance_code}/cancel";
572
573    /// 抄送审批实例 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
574    pub const APPROVAL_V4_INSTANCE_CC: &'static str =
575        "/open-apis/approval/v4/instances/{instance_code}/cc";
576
577    /// 预览审批实例
578    pub const APPROVAL_V4_INSTANCE_PREVIEW: &'static str =
579        "/open-apis/approval/v4/instances/preview";
580
581    // ===== 实例评论端点 =====
582
583    /// 创建实例评论 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
584    pub const APPROVAL_V4_INSTANCE_COMMENTS_CREATE: &'static str =
585        "/open-apis/approval/v4/instances/{instance_code}/comments";
586
587    /// 删除实例评论 (需要使用 EndpointBuilder::replace_param 替换 {instance_code} 和 {comment_id})
588    pub const APPROVAL_V4_INSTANCE_COMMENT_DELETE: &'static str =
589        "/open-apis/approval/v4/instances/{instance_code}/comments/{comment_id}";
590
591    /// 获取实例评论列表 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
592    pub const APPROVAL_V4_INSTANCE_COMMENTS_LIST: &'static str =
593        "/open-apis/approval/v4/instances/{instance_code}/comments";
594
595    /// 回复实例评论 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
596    pub const APPROVAL_V4_INSTANCE_COMMENTS_REPLY: &'static str =
597        "/open-apis/approval/v4/instances/{instance_code}/comments";
598
599    // ===== 外部实例端点 =====
600
601    /// 创建外部实例
602    pub const APPROVAL_V4_EXTERNAL_INSTANCES: &'static str =
603        "/open-apis/approval/v4/external_instances";
604
605    /// 校验外部实例 (需要使用 EndpointBuilder::replace_param 替换 {instance_code})
606    pub const APPROVAL_V4_EXTERNAL_INSTANCE_CHECK: &'static str =
607        "/open-apis/approval/v4/external_instances/{instance_code}/check";
608
609    // ===== 外部任务端点 =====
610
611    /// 创建外部任务
612    pub const APPROVAL_V4_EXTERNAL_TASKS: &'static str = "/open-apis/approval/v4/external_tasks";
613
614    // ===== 消息管理端点 =====
615
616    /// 发送消息
617    pub const APPROVAL_V4_MESSAGES: &'static str = "/open-apis/approval/v4/messages";
618
619    /// 更新消息 (需要使用 EndpointBuilder::replace_param 替换 {message_id})
620    pub const APPROVAL_V4_MESSAGE_PATCH: &'static str =
621        "/open-apis/approval/v4/messages/{message_id}";
622
623    // ===== 搜索端点 =====
624
625    /// 搜索审批实例
626    pub const APPROVAL_V4_INSTANCES_SEARCH: &'static str =
627        "/open-apis/approval/v4/instances/search";
628
629    /// 搜索审批任务
630    pub const APPROVAL_V4_TASKS_SEARCH: &'static str = "/open-apis/approval/v4/tasks/search";
631
632    /// 搜索抄送实例
633    pub const APPROVAL_V4_INSTANCES_SEARCH_CC: &'static str =
634        "/open-apis/approval/v4/instances/search_cc";
635
636    /// 搜索审批定义
637    pub const APPROVAL_V4_APPROVALS_SEARCH: &'static str =
638        "/open-apis/approval/v4/approvals/search";
639
640    /// 查询任务
641    pub const APPROVAL_V4_TASKS_QUERY: &'static str = "/open-apis/approval/v4/tasks/query";
642
643    // ===== 任务处理端点 =====
644
645    /// 同意任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
646    pub const APPROVAL_V4_TASK_APPROVE: &'static str =
647        "/open-apis/approval/v4/tasks/{task_id}/approve";
648
649    /// 拒绝任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
650    pub const APPROVAL_V4_TASK_REJECT: &'static str =
651        "/open-apis/approval/v4/tasks/{task_id}/reject";
652
653    /// 转交任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
654    pub const APPROVAL_V4_TASK_TRANSFER: &'static str =
655        "/open-apis/approval/v4/tasks/{task_id}/transfer";
656
657    /// 指定回退任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
658    pub const APPROVAL_V4_TASK_SPECIFIED_ROLLBACK: &'static str =
659        "/open-apis/approval/v4/tasks/{task_id}/specified_rollback";
660
661    /// 加签任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
662    pub const APPROVAL_V4_TASK_ADD_SIGN: &'static str =
663        "/open-apis/approval/v4/tasks/{task_id}/add_sign";
664
665    /// 重新提交任务 (需要使用 EndpointBuilder::replace_param 替换 {task_id})
666    pub const APPROVAL_V4_TASK_RESUBMIT: &'static str =
667        "/open-apis/approval/v4/tasks/{task_id}/resubmit";
668
669    // ==================== 身份验证服务端点 ====================
670
671    /// 获取访问令牌
672    pub const AUTH_ACCESS_TOKEN: &'static str = "/open-apis/auth/v3/app_access_token";
673
674    /// 获取用户访问令牌
675    pub const AUTH_USER_ACCESS_TOKEN: &'static str = "/open-apis/auth/v3/user_access_token";
676
677    /// 刷新用户访问令牌
678    pub const AUTH_REFRESH_USER_TOKEN: &'static str =
679        "/open-apis/auth/v3/refresh_user_access_token";
680
681    /// 获取登录预授权码
682    pub const AUTH_LOGIN_PRE_AUTH: &'static str = "/open-apis/authen/v1/oidc/access_token";
683
684    /// 获取用户信息
685    pub const AUTH_USER_INFO: &'static str = "/open-apis/authen/v1/user_info";
686
687    // ==================== 联系人服务端点 ====================
688
689    // 用户管理
690    /// 获取用户信息
691    pub const CONTACT_USER_GET: &'static str = "/open-apis/contact/v3/users/{user_id}";
692
693    /// 获取用户列表
694    pub const CONTACT_USER_LIST: &'static str = "/open-apis/contact/v3/users";
695
696    /// 批量获取用户信息
697    pub const CONTACT_USER_BATCH_GET: &'static str = "/open-apis/contact/v3/users/batch";
698
699    /// 搜索用户
700    pub const CONTACT_USER_SEARCH: &'static str = "/open-apis/contact/v3/users/find_by_mobile";
701
702    // 部门管理
703    /// 获取部门信息
704    pub const CONTACT_DEPARTMENT_GET: &'static str =
705        "/open-apis/contact/v3/departments/{department_id}";
706
707    /// 获取部门列表
708    pub const CONTACT_DEPARTMENT_LIST: &'static str = "/open-apis/contact/v3/departments";
709
710    /// 获取子部门列表
711    pub const CONTACT_DEPARTMENT_CHILDREN: &'static str =
712        "/open-apis/contact/v3/departments/{department_id}/children";
713
714    // ==================== 应用管理服务端点 ====================
715
716    /// 应用信息
717    pub const APPLICATION_GET_APP_INFO: &'static str =
718        "/open-apis/application/v6/applications/{app_id}";
719
720    /// 获取应用管理员列表
721    pub const APPLICATION_GET_ADMIN_LIST: &'static str =
722        "/open-apis/application/v6/applications/{app_id}/app_admin_user_list";
723
724    /// 应用商店信息
725    pub const APPLICATION_GET_APP_STORE_INFO: &'static str =
726        "/open-apis/application/v6/applications/{app_id}/app_version";
727
728    // ==================== 日历服务端点 ====================
729
730    // 日历管理
731    /// 创建日历
732    pub const CALENDAR_CREATE: &'static str = "/open-apis/calendar/v4/calendars";
733
734    /// 获取日历
735    pub const CALENDAR_GET: &'static str = "/open-apis/calendar/v4/calendars/{calendar_id}";
736
737    /// 更新日历
738    pub const CALENDAR_UPDATE: &'static str = "/open-apis/calendar/v4/calendars/{calendar_id}";
739
740    /// 删除日历
741    pub const CALENDAR_DELETE: &'static str = "/open-apis/calendar/v4/calendars/{calendar_id}";
742
743    /// 获取日历列表
744    pub const CALENDAR_LIST: &'static str = "/open-apis/calendar/v4/calendars";
745
746    /// 设置主日历
747    pub const CALENDAR_PRIMARY: &'static str =
748        "/open-apis/calendar/v4/calendars/{calendar_id}/primary";
749
750    /// 搜索日历
751    pub const CALENDAR_SEARCH: &'static str =
752        "/open-apis/calendar/v4/calendars/{calendar_id}/search";
753
754    // 日程管理
755    /// 创建日程
756    pub const CALENDAR_EVENT_CREATE: &'static str =
757        "/open-apis/calendar/v4/calendars/{calendar_id}/events";
758
759    /// 获取日程
760    pub const CALENDAR_EVENT_GET: &'static str =
761        "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}";
762
763    /// 更新日程
764    pub const CALENDAR_EVENT_UPDATE: &'static str =
765        "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}";
766
767    /// 删除日程
768    pub const CALENDAR_EVENT_DELETE: &'static str =
769        "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}";
770
771    /// 获取日程列表
772    pub const CALENDAR_EVENT_LIST: &'static str =
773        "/open-apis/calendar/v4/calendars/{calendar_id}/events";
774
775    /// 回复日程邀请
776    pub const CALENDAR_EVENT_REPLY: &'static str =
777        "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}/reply";
778
779    /// 搜索日程
780    pub const CALENDAR_EVENT_SEARCH: &'static str =
781        "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}/search";
782
783    // ==================== AI Document AI 相关端点 ====================
784    /// 简历解析
785    pub const DOCUMENT_AI_RESUME_PARSE: &'static str = "/open-apis/document_ai/v1/resume/parse";
786
787    /// 身份证识别
788    pub const DOCUMENT_AI_ID_CARD_RECOGNIZE: &'static str =
789        "/open-apis/document_ai/v1/id_card/recognize";
790
791    /// 驾驶证识别
792    pub const DOCUMENT_AI_DRIVING_LICENSE_RECOGNIZE: &'static str =
793        "/open-apis/document_ai/v1/driving_license/recognize";
794
795    /// 银行卡识别
796    pub const DOCUMENT_AI_BANK_CARD_RECOGNIZE: &'static str =
797        "/open-apis/document_ai/v1/bank_card/recognize";
798
799    /// 营业执照识别
800    pub const DOCUMENT_AI_BUSINESS_LICENSE_RECOGNIZE: &'static str =
801        "/open-apis/document_ai/v1/business_license/recognize";
802
803    /// 增值税发票识别
804    pub const DOCUMENT_AI_VAT_INVOICE_RECOGNIZE: &'static str =
805        "/open-apis/document_ai/v1/vat_invoice/recognize";
806
807    /// 合同字段提取
808    pub const DOCUMENT_AI_CONTRACT_FIELD_EXTRACTION: &'static str =
809        "/open-apis/document_ai/v1/contract/field_extraction";
810
811    /// 名片识别
812    pub const DOCUMENT_AI_BUSINESS_CARD_RECOGNIZE: &'static str =
813        "/open-apis/document_ai/v1/business_card/recognize";
814
815    /// 机动车发票识别
816    pub const DOCUMENT_AI_VEHICLE_INVOICE_RECOGNIZE: &'static str =
817        "/open-apis/document_ai/v1/vehicle_invoice/recognize";
818
819    /// 健康证识别
820    pub const DOCUMENT_AI_HEALTH_CERTIFICATE_RECOGNIZE: &'static str =
821        "/open-apis/document_ai/v1/health_certificate/recognize";
822
823    /// 港澳居民来往内地通行证识别
824    pub const DOCUMENT_AI_HKM_MAINLAND_TRAVEL_PERMIT_RECOGNIZE: &'static str =
825        "/open-apis/document_ai/v1/hkm_mainland_travel_permit/recognize";
826
827    /// 台湾居民来往大陆通行证识别
828    pub const DOCUMENT_AI_TW_MAINLAND_TRAVEL_PERMIT_RECOGNIZE: &'static str =
829        "/open-apis/document_ai/v1/tw_mainland_travel_permit/recognize";
830
831    /// 中国护照识别
832    pub const DOCUMENT_AI_CHINESE_PASSPORT_RECOGNIZE: &'static str =
833        "/open-apis/document_ai/v1/chinese_passport/recognize";
834
835    /// 行驶证识别
836    pub const DOCUMENT_AI_VEHICLE_LICENSE_RECOGNIZE: &'static str =
837        "/open-apis/document_ai/v1/vehicle_license/recognize";
838
839    /// 火车票识别
840    pub const DOCUMENT_AI_TRAIN_INVOICE_RECOGNIZE: &'static str =
841        "/open-apis/document_ai/v1/train_invoice/recognize";
842
843    /// 出租车发票识别
844    pub const DOCUMENT_AI_TAXI_INVOICE_RECOGNIZE: &'static str =
845        "/open-apis/document_ai/v1/taxi_invoice/recognize";
846
847    /// 食品生产许可证识别
848    pub const DOCUMENT_AI_FOOD_PRODUCE_LICENSE_RECOGNIZE: &'static str =
849        "/open-apis/document_ai/v1/food_produce_license/recognize";
850
851    /// 食品经营许可证识别
852    pub const DOCUMENT_AI_FOOD_MANAGE_LICENSE_RECOGNIZE: &'static str =
853        "/open-apis/document_ai/v1/food_manage_license/recognize";
854
855    // ==================== AI Services AI服务相关端点 ====================
856    /// 语音文件识别
857    pub const SPEECH_TO_TEXT_V1_FILE_RECOGNIZE: &'static str =
858        "/open-apis/speech_to_text/v1/speech/file_recognize";
859
860    /// 流式语音识别
861    pub const SPEECH_TO_TEXT_V1_STREAM_RECOGNIZE: &'static str =
862        "/open-apis/speech_to_text/v1/speech/stream_recognize";
863
864    /// 光学字符识别
865    pub const OPTICAL_CHAR_RECOGNITION_V1_BASIC_RECOGNIZE: &'static str =
866        "/open-apis/optical_char_recognition/v1/image/basic_recognize";
867
868    /// 语种检测
869    pub const TRANSLATION_V1_TEXT_DETECT: &'static str = "/open-apis/translation/v1/text/detect";
870
871    /// 文本翻译
872    pub const TRANSLATION_V1_TEXT_TRANSLATE: &'static str =
873        "/open-apis/translation/v1/text/translate";
874
875    // ==================== E-Learning 在线学习相关端点 ====================
876    /// 课程报名管理
877    pub const ELEARNING_V2_COURSE_REGISTRATIONS: &'static str =
878        "/open-apis/elearning/v2/course_registrations";
879
880    /// 课程报名操作
881    pub const ELEARNING_V2_COURSE_REGISTRATION_OPERATION: &'static str =
882        "/open-apis/elearning/v2/course_registrations/{registration_id}";
883
884    /// 课程报名统计
885    pub const ELEARNING_V2_COURSE_REGISTRATIONS_STATISTICS: &'static str =
886        "/open-apis/elearning/v2/course_registrations/statistics";
887
888    // ==================== Tenant Tag 租户标签相关端点 ====================
889    // 注意:TENANT_TAG相关端点已迁移至 core::endpoints::tenant_tag 模块
890
891    // ==================== Task v2 相关端点 ====================
892    /// 任务附件上传
893    pub const TASK_V2_ATTACHMENTS_UPLOAD: &'static str = "/open-apis/task/v2/attachments/upload";
894
895    /// 任务附件管理
896    pub const TASK_V2_ATTACHMENTS: &'static str = "/open-apis/task/v2/attachments";
897
898    /// 任务分组管理
899    pub const TASK_V2_SECTIONS: &'static str = "/open-apis/task/v2/sections";
900
901    /// 任务管理
902    pub const TASK_V2_TASKS: &'static str = "/open-apis/task/v2/tasks";
903
904    /// 任务自定义字段管理
905    pub const TASK_V2_CUSTOM_FIELDS: &'static str = "/open-apis/task/v2/custom_fields";
906
907    /// 任务清单管理
908    pub const TASK_V2_TASKLISTS: &'static str = "/open-apis/task/v2/tasklists";
909
910    // 参数化端点常量
911    /// 获取/更新/删除特定附件
912    pub const TASK_V2_ATTACHMENT_GET: &'static str =
913        "/open-apis/task/v2/attachments/{attachment_guid}";
914
915    /// 获取/更新/删除特定自定义字段
916    pub const TASK_V2_CUSTOM_FIELD_GET: &'static str =
917        "/open-apis/task/v2/custom_fields/{custom_field_guid}";
918
919    /// 添加自定义字段选项
920    pub const TASK_V2_CUSTOM_FIELD_ADD: &'static str =
921        "/open-apis/task/v2/custom_fields/{custom_field_guid}/add";
922
923    /// 移除自定义字段选项
924    pub const TASK_V2_CUSTOM_FIELD_REMOVE: &'static str =
925        "/open-apis/task/v2/custom_fields/{custom_field_guid}/remove";
926
927    /// 自定义字段选项管理
928    pub const TASK_V2_CUSTOM_FIELD_OPTIONS: &'static str =
929        "/open-apis/task/v2/custom_fields/{custom_field_guid}/options";
930
931    /// 获取/更新/删除特定自定义字段选项
932    pub const TASK_V2_CUSTOM_FIELD_OPTION_GET: &'static str =
933        "/open-apis/task/v2/custom_fields/{custom_field_guid}/options/{option_guid}";
934
935    /// 获取/更新/删除特定分组
936    pub const TASK_V2_SECTION_GET: &'static str = "/open-apis/task/v2/sections/{section_guid}";
937
938    /// 分组任务管理
939    pub const TASK_V2_SECTION_TASKS: &'static str =
940        "/open-apis/task/v2/sections/{section_guid}/tasks";
941
942    /// 获取/更新/删除特定任务清单
943    pub const TASK_V2_TASKLIST_GET: &'static str = "/open-apis/task/v2/tasklists/{tasklist_guid}";
944
945    /// 任务清单添加成员
946    pub const TASK_V2_TASKLIST_ADD_MEMBERS: &'static str =
947        "/open-apis/task/v2/tasklists/{tasklist_guid}/add_members";
948
949    /// 任务清单移除成员
950    pub const TASK_V2_TASKLIST_REMOVE_MEMBERS: &'static str =
951        "/open-apis/task/v2/tasklists/{tasklist_guid}/remove_members";
952
953    /// 任务清单任务管理
954    pub const TASK_V2_TASKLIST_TASKS: &'static str =
955        "/open-apis/task/v2/tasklists/{tasklist_guid}/tasks";
956
957    /// 任务清单活动订阅
958    pub const TASK_V2_TASKLIST_ACTIVITY_SUBSCRIPTIONS: &'static str =
959        "/open-apis/task/v2/tasklists/{tasklist_guid}/activity_subscriptions";
960
961    /// 获取/更新/删除特定活动订阅
962    pub const TASK_V2_TASKLIST_ACTIVITY_SUBSCRIPTION_GET: &'static str = "/open-apis/task/v2/tasklists/{tasklist_guid}/activity_subscriptions/{activity_subscription_guid}";
963
964    /// 获取/更新/删除特定任务
965    pub const TASK_V2_TASK_GET: &'static str = "/open-apis/task/v2/tasks/{task_guid}";
966
967    /// 任务添加成员
968    pub const TASK_V2_TASK_ADD_MEMBERS: &'static str =
969        "/open-apis/task/v2/tasks/{task_guid}/add_members";
970
971    /// 任务移除成员
972    pub const TASK_V2_TASK_REMOVE_MEMBERS: &'static str =
973        "/open-apis/task/v2/tasks/{task_guid}/remove_members";
974
975    /// 任务添加提醒
976    pub const TASK_V2_TASK_ADD_REMINDERS: &'static str =
977        "/open-apis/task/v2/tasks/{task_guid}/add_reminders";
978
979    /// 任务移除提醒
980    pub const TASK_V2_TASK_REMOVE_REMINDERS: &'static str =
981        "/open-apis/task/v2/tasks/{task_guid}/remove_reminders";
982
983    /// 任务加入清单
984    pub const TASK_V2_TASK_ADD_TASKLIST: &'static str =
985        "/open-apis/task/v2/tasks/{task_guid}/add_tasklist";
986
987    /// 任务添加依赖
988    pub const TASK_V2_TASK_ADD_DEPENDENCIES: &'static str =
989        "/open-apis/task/v2/tasks/{task_guid}/add_dependencies";
990
991    /// 任务移除依赖
992    pub const TASK_V2_TASK_REMOVE_DEPENDENCIES: &'static str =
993        "/open-apis/task/v2/tasks/{task_guid}/remove_dependencies";
994
995    /// 任务评论管理
996    pub const TASK_V2_TASK_COMMENTS: &'static str = "/open-apis/task/v2/tasks/{task_guid}/comments";
997
998    /// 获取/更新/删除特定任务评论
999    pub const TASK_V2_TASK_COMMENT_GET: &'static str =
1000        "/open-apis/task/v2/tasks/{task_guid}/comments/{comment_id}";
1001
1002    /// 任务子任务管理
1003    pub const TASK_V2_TASK_SUBTASKS: &'static str = "/open-apis/task/v2/tasks/{task_guid}/subtasks";
1004
1005    // ==================== Payroll 薪酬管理相关端点 ====================
1006
1007    /// 成本分摊计划列表
1008    pub const PAYROLL_V1_COST_ALLOCATION_PLANS: &'static str =
1009        "/open-apis/payroll/v1/cost_allocation_plans";
1010
1011    /// 账套项目列表  
1012    pub const PAYROLL_V1_ACCT_ITEMS: &'static str = "/open-apis/payroll/v1/acct_items";
1013
1014    /// 数据源列表
1015    pub const PAYROLL_V1_DATASOURCES: &'static str = "/open-apis/payroll/v1/datasources";
1016
1017    /// 数据源记录保存
1018    pub const PAYROLL_V1_DATASOURCE_RECORDS_SAVE: &'static str =
1019        "/open-apis/payroll/v1/datasources/{datasource_id}/records/save";
1020
1021    /// 数据源记录查询
1022    pub const PAYROLL_V1_DATASOURCE_RECORDS_QUERY: &'static str =
1023        "/open-apis/payroll/v1/datasources/{datasource_id}/records/query";
1024
1025    /// 薪酬活动详情查询
1026    pub const PAYROLL_V1_PAYMENT_DETAILS: &'static str =
1027        "/open-apis/payroll/v1/payment_activities/{payment_activity_id}/payment_details";
1028
1029    /// 薪酬活动详情查询(通过查询接口)
1030    pub const PAYROLL_V1_PAYMENT_DETAILS_QUERY: &'static str =
1031        "/open-apis/payroll/v1/payment_activities/{payment_activity_id}/payment_details/query";
1032
1033    /// 薪酬活动列表
1034    pub const PAYROLL_V1_PAYMENT_ACTIVITIES: &'static str =
1035        "/open-apis/payroll/v1/payment_activities";
1036
1037    /// 薪酬活动归档
1038    pub const PAYROLL_V1_PAYMENT_ACTIVITY_ARCHIVE: &'static str =
1039        "/open-apis/payroll/v1/payment_activities/{payment_activity_id}/archive";
1040
1041    /// 成本分摊报表列表
1042    pub const PAYROLL_V1_COST_ALLOCATION_REPORTS: &'static str =
1043        "/open-apis/payroll/v1/cost_allocation_reports";
1044
1045    /// 薪酬组列表
1046    pub const PAYROLL_V1_PAYGROUPS: &'static str = "/open-apis/payroll/v1/paygroups";
1047
1048    // ==================== APaaS 平台即服务相关端点 ====================
1049
1050    // ===== 座位管理端点 =====
1051    /// 查询座位分配列表
1052    pub const APASS_V1_SEAT_ASSIGNMENT_LIST: &'static str =
1053        "/open-apis/apaas/v1/seat_assignment/list";
1054    /// 查询座位活动列表
1055    pub const APASS_V1_SEAT_ACTIVITY_LIST: &'static str = "/open-apis/apaas/v1/seat_activity/list";
1056
1057    // ===== 流程管理端点 =====
1058    /// 执行流程
1059    pub const APASS_V1_FLOW_EXECUTE: &'static str =
1060        "/open-apis/apaas/v1/application/{app_id}/flow/{flow_api_name}/execute";
1061    /// 查询用户任务
1062    pub const APASS_V1_FLOW_USER_TASK_QUERY: &'static str =
1063        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/query";
1064    /// 同意用户任务
1065    pub const APASS_V1_FLOW_USER_TASK_AGREE: &'static str =
1066        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/agree";
1067    /// 拒绝用户任务
1068    pub const APASS_V1_FLOW_USER_TASK_REJECT: &'static str =
1069        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/reject";
1070    /// 转发用户任务
1071    pub const APASS_V1_FLOW_USER_TASK_TRANSFER: &'static str =
1072        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/transfer";
1073    /// 添加用户任务处理人
1074    pub const APASS_V1_FLOW_USER_TASK_ADD_ASSIGNEE: &'static str =
1075        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/add_assignee";
1076    /// 抄送用户任务
1077    pub const APASS_V1_FLOW_USER_TASK_CC: &'static str =
1078        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/cc";
1079    /// 催办用户任务
1080    pub const APASS_V1_FLOW_USER_TASK_EXPEDITING: &'static str =
1081        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/expediting";
1082    /// 取消用户任务
1083    pub const APASS_V1_FLOW_USER_TASK_CANCEL: &'static str =
1084        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/cancel";
1085    /// 查询用户任务回退点
1086    pub const APASS_V1_FLOW_USER_TASK_ROLLBACK_POINTS: &'static str =
1087        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/rollback_points";
1088    /// 回退用户任务
1089    pub const APASS_V1_FLOW_USER_TASK_ROLLBACK: &'static str =
1090        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/rollback";
1091    /// 获取用户任务群聊
1092    pub const APASS_V1_FLOW_USER_TASK_CHAT_GROUP: &'static str =
1093        "/open-apis/apaas/v1/application/{app_id}/flow/user_task/{task_id}/chat_group";
1094
1095    // ===== 函数管理端点 =====
1096    /// 调用函数
1097    pub const APASS_V1_FUNCTION_INVOKE: &'static str =
1098        "/open-apis/apaas/v1/application/{app_id}/function/{function_name}/invoke";
1099
1100    // ===== 权限管理端点 =====
1101    /// 批量移除角色成员
1102    pub const APASS_V1_PERMISSION_ROLE_MEMBERS_BATCH_REMOVE: &'static str = "/open-apis/apaas/v1/application/{app_id}/permission/role/{role_api_name}/members/batch_remove";
1103    /// 批量添加角色成员
1104    pub const APASS_V1_PERMISSION_ROLE_MEMBERS_BATCH_CREATE: &'static str = "/open-apis/apaas/v1/application/{app_id}/permission/role/{role_api_name}/members/batch_create";
1105    /// 获取角色成员
1106    pub const APASS_V1_PERMISSION_ROLE_MEMBER_GET: &'static str =
1107        "/open-apis/apaas/v1/application/{app_id}/permission/role/{role_api_name}/member/{user_id}";
1108    /// 批量移除记录权限成员
1109    pub const APASS_V1_PERMISSION_RECORD_MEMBERS_BATCH_REMOVE: &'static str = "/open-apis/apaas/v1/application/{app_id}/permission/record_permission/{record_permission_api_name}/members/batch_remove";
1110    /// 批量添加记录权限成员
1111    pub const APASS_V1_PERMISSION_RECORD_MEMBERS_BATCH_CREATE: &'static str = "/open-apis/apaas/v1/application/{app_id}/permission/record_permission/{record_permission_api_name}/members/batch_create";
1112
1113    // ===== 对象管理端点 =====
1114    /// OQL 查询
1115    pub const APASS_V1_OBJECT_OQL: &'static str =
1116        "/open-apis/apaas/v1/application/{app_id}/object/oql";
1117    /// 搜索记录
1118    pub const APASS_V1_OBJECT_RECORD_SEARCH: &'static str =
1119        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/search";
1120    /// 获取记录
1121    pub const APASS_V1_OBJECT_RECORD_GET: &'static str =
1122        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/{record_id}";
1123    /// 更新记录
1124    pub const APASS_V1_OBJECT_RECORD_UPDATE: &'static str =
1125        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/{record_id}";
1126    /// 删除记录
1127    pub const APASS_V1_OBJECT_RECORD_DELETE: &'static str =
1128        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/{record_id}";
1129    /// 创建记录
1130    pub const APASS_V1_OBJECT_RECORD_CREATE: &'static str =
1131        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record";
1132    /// 批量更新记录
1133    pub const APASS_V1_OBJECT_RECORD_BATCH_UPDATE: &'static str =
1134        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/batch_update";
1135    /// 批量查询记录
1136    pub const APASS_V1_OBJECT_RECORD_BATCH_QUERY: &'static str =
1137        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/batch_query";
1138    /// 批量删除记录
1139    pub const APASS_V1_OBJECT_RECORD_BATCH_DELETE: &'static str =
1140        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/batch_delete";
1141    /// 批量创建记录
1142    pub const APASS_V1_OBJECT_RECORD_BATCH_CREATE: &'static str =
1143        "/open-apis/apaas/v1/application/{app_id}/object/{object_api_name}/record/batch_create";
1144
1145    // ===== 环境变量管理端点 =====
1146    /// 查询环境变量
1147    pub const APASS_V1_ENVIRONMENT_VARIABLE_QUERY: &'static str =
1148        "/open-apis/apaas/v1/application/{app_id}/environment_variable/query";
1149    /// 获取环境变量
1150    pub const APASS_V1_ENVIRONMENT_VARIABLE_GET: &'static str =
1151        "/open-apis/apaas/v1/application/{app_id}/environment_variable/{variable_name}";
1152
1153    // ===== 审计日志管理端点 =====
1154    /// 审计日志列表
1155    pub const APASS_V1_AUDIT_LOG_LIST: &'static str =
1156        "/open-apis/apaas/v1/application/{app_id}/audit_log/list";
1157    /// 获取审计日志
1158    pub const APASS_V1_AUDIT_LOG_GET: &'static str =
1159        "/open-apis/apaas/v1/application/{app_id}/audit_log/{log_id}";
1160    /// 数据变更日志列表
1161    pub const APASS_V1_AUDIT_LOG_DATA_CHANGE_LOGS: &'static str =
1162        "/open-apis/apaas/v1/application/{app_id}/audit_log/data_change_logs";
1163    /// 获取数据变更日志
1164    pub const APASS_V1_AUDIT_LOG_DATA_CHANGE_LOG_GET: &'static str =
1165        "/open-apis/apaas/v1/application/{app_id}/audit_log/data_change_log/{log_id}";
1166    /// 审计事件列表
1167    pub const APASS_V1_AUDIT_LOG_AUDIT_EVENTS: &'static str =
1168        "/open-apis/apaas/v1/application/{app_id}/audit_log/audit_events";
1169
1170    // ==================== Performance 绩效管理相关端点 ====================
1171    /// 评估数据查询
1172    pub const PERFORMANCE_V1_REVIEW_DATA_QUERY: &'static str =
1173        "/open-apis/performance/v1/review_data/query";
1174
1175    /// 评估详情数据查询
1176    pub const PERFORMANCE_V1_REVIEW_DATA_DETAILS_QUERY: &'static str =
1177        "/open-apis/performance/v1/review_data/details/query";
1178
1179    /// 阶段任务用户列表查询
1180    pub const PERFORMANCE_V1_STAGE_TASK_FIND_BY_USER_LIST: &'static str =
1181        "/open-apis/performance/v1/stage_task/find_by_user_list";
1182
1183    /// 阶段任务分页查询
1184    pub const PERFORMANCE_V1_STAGE_TASK_FIND_BY_PAGE: &'static str =
1185        "/open-apis/performance/v1/stage_task/find_by_page";
1186
1187    /// 指标详情查询
1188    pub const PERFORMANCE_V1_METRIC_DETAIL_QUERY: &'static str =
1189        "/open-apis/performance/v1/metric_detail/query";
1190
1191    /// 指标详情导入
1192    pub const PERFORMANCE_V1_METRIC_DETAIL_IMPORT: &'static str =
1193        "/open-apis/performance/v1/metric_detail/import";
1194
1195    /// 绩效周期列表查询
1196    pub const PERFORMANCE_SEMESTER_LIST: &'static str =
1197        "/open-apis/performance/v1/review_config/semester_activity/semesters";
1198
1199    /// 绩效项目查询
1200    pub const PERFORMANCE_ACTIVITIES_QUERY: &'static str =
1201        "/open-apis/performance/v1/review_config/semester_activity/activities";
1202
1203    /// 查询附加信息
1204    pub const PERFORMANCE_ADDITIONAL_INFO_QUERY: &'static str =
1205        "/open-apis/performance/v1/review_config/semester_activity/additional_information/query";
1206
1207    /// 导入附加信息
1208    pub const PERFORMANCE_ADDITIONAL_INFO_IMPORT: &'static str =
1209        "/open-apis/performance/v1/review_config/semester_activity/additional_information/import";
1210
1211    /// 删除附加信息
1212    pub const PERFORMANCE_ADDITIONAL_INFO_DELETE: &'static str =
1213        "/open-apis/performance/v1/review_config/semester_activity/additional_information/delete";
1214
1215    /// 用户组关系写入
1216    pub const PERFORMANCE_USER_GROUP_WRITE: &'static str =
1217        "/open-apis/performance/v1/review_config/semester_activity/user_group_user_rel/write";
1218
1219    /// 评估模板查询
1220    pub const PERFORMANCE_REVIEW_TEMPLATES_QUERY: &'static str =
1221        "/open-apis/performance/v1/review_config/review_templates/query";
1222
1223    /// 评估项目查询
1224    pub const PERFORMANCE_REVIEW_ITEMS_QUERY: &'static str =
1225        "/open-apis/performance/v1/review_config/review_items/query";
1226
1227    /// 标签问题查询
1228    pub const PERFORMANCE_TAG_QUESTIONS_QUERY: &'static str =
1229        "/open-apis/performance/v1/review_config/tag_questions/query";
1230
1231    /// 指标查询
1232    pub const PERFORMANCE_METRICS_QUERY: &'static str =
1233        "/open-apis/performance/v1/review_config/metrics/query";
1234
1235    /// 指标模板查询
1236    pub const PERFORMANCE_METRIC_TEMPLATES_QUERY: &'static str =
1237        "/open-apis/performance/v1/review_config/metric_templates/query";
1238
1239    /// 指标字段查询
1240    pub const PERFORMANCE_METRIC_FIELDS_QUERY: &'static str =
1241        "/open-apis/performance/v1/review_config/metric_fields/query";
1242
1243    /// 指标标签管理
1244    pub const PERFORMANCE_METRIC_TAGS: &'static str =
1245        "/open-apis/performance/v1/review_config/metric_tags";
1246
1247    /// 被评估人查询
1248    pub const PERFORMANCE_REVIEWEES_QUERY: &'static str =
1249        "/open-apis/performance/v1/review_config/semester_activity/reviewees/query";
1250
1251    // ==================== Personal Settings 个人设置相关端点 ====================
1252
1253    /// 系统状态管理
1254    pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUSES: &'static str =
1255        "/open-apis/personal_settings/v1/system_statuses";
1256
1257    /// 系统状态操作
1258    pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_OPERATION: &'static str =
1259        "/open-apis/personal_settings/v1/system_statuses/{system_status_id}";
1260
1261    /// 批量开启系统状态
1262    pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_OPEN: &'static str =
1263        "/open-apis/personal_settings/v1/system_statuses/batch_open";
1264
1265    /// 批量关闭系统状态
1266    pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_CLOSE: &'static str =
1267        "/open-apis/personal_settings/v1/system_statuses/batch_close";
1268
1269    // ==================== CoreHR 人力资源管理相关端点 ====================
1270    /// 公司信息管理
1271    pub const COREHR_COMPANIES: &'static str = "/open-apis/corehr/v1/companies";
1272
1273    /// 部门管理
1274    pub const COREHR_DEPARTMENTS: &'static str = "/open-apis/corehr/v1/departments";
1275
1276    /// 部门批量获取
1277    pub const COREHR_DEPARTMENTS_BATCH_GET: &'static str =
1278        "/open-apis/corehr/v1/departments/batch_get";
1279
1280    /// 部门树结构
1281    pub const COREHR_DEPARTMENTS_TREE: &'static str = "/open-apis/corehr/v1/departments/tree";
1282
1283    /// 员工批量获取
1284    pub const COREHR_EMPLOYEES_BATCH_GET: &'static str = "/open-apis/corehr/v1/employees/batch_get";
1285
1286    /// 员工搜索
1287    pub const COREHR_EMPLOYEES_SEARCH: &'static str = "/open-apis/corehr/v1/employees/search";
1288
1289    /// 职位管理
1290    pub const COREHR_JOBS: &'static str = "/open-apis/corehr/v1/jobs";
1291
1292    /// 职位族群管理
1293    pub const COREHR_JOB_FAMILIES: &'static str = "/open-apis/corehr/v1/job_families";
1294
1295    /// 职级管理
1296    pub const COREHR_JOB_LEVELS: &'static str = "/open-apis/corehr/v1/job_levels";
1297
1298    /// 职等管理
1299    pub const COREHR_JOB_GRADES: &'static str = "/open-apis/corehr/v1/job_grades";
1300
1301    /// 职等查询
1302    pub const COREHR_JOB_GRADES_QUERY: &'static str = "/open-apis/corehr/v1/job_grades/query";
1303
1304    /// 异动记录管理
1305    pub const COREHR_JOB_CHANGES: &'static str = "/open-apis/corehr/v1/job_changes";
1306
1307    /// 异动记录搜索
1308    pub const COREHR_JOB_CHANGES_SEARCH: &'static str = "/open-apis/corehr/v1/job_changes/search";
1309
1310    /// 待入职管理
1311    pub const COREHR_PRE_HIRES: &'static str = "/open-apis/corehr/v1/pre_hires";
1312
1313    /// 待入职搜索
1314    pub const COREHR_PRE_HIRES_SEARCH: &'static str = "/open-apis/corehr/v1/pre_hires/search";
1315
1316    /// 离职管理
1317    pub const COREHR_OFFBOARDINGS: &'static str = "/open-apis/corehr/v1/offboardings";
1318
1319    /// 离职搜索
1320    pub const COREHR_OFFBOARDINGS_SEARCH: &'static str = "/open-apis/corehr/v1/offboardings/search";
1321
1322    /// 基础信息枚举搜索
1323    pub const COREHR_BASIC_INFO_ENUM_SEARCH: &'static str =
1324        "/open-apis/corehr/v1/basic_info/enum/search";
1325
1326    /// 地理位置数据搜索
1327    pub const COREHR_BASIC_INFO_LOCATION_SEARCH: &'static str =
1328        "/open-apis/corehr/v1/basic_info/location_data/search";
1329
1330    /// 国籍搜索
1331    pub const COREHR_BASIC_INFO_NATIONALITY_SEARCH: &'static str =
1332        "/open-apis/corehr/v1/basic_info/nationality/search";
1333
1334    /// 通用数据ID转换
1335    pub const COREHR_COMMON_DATA_ID_CONVERT: &'static str =
1336        "/open-apis/corehr/v1/common_data_id/convert";
1337
1338    // ==================== Contact v3 通讯录相关端点 ====================
1339    /// 用户管理
1340    pub const CONTACT_V3_USERS: &'static str = "/open-apis/contact/v3/users";
1341
1342    /// 用户批量获取
1343    pub const CONTACT_V3_USERS_BATCH: &'static str = "/open-apis/contact/v3/users/batch";
1344
1345    /// 用户批量获取ID
1346    pub const CONTACT_V3_USERS_BATCH_GET_ID: &'static str =
1347        "/open-apis/contact/v3/users/batch_get_id";
1348
1349    /// 根据部门查找用户
1350    pub const CONTACT_V3_USERS_FIND_BY_DEPARTMENT: &'static str =
1351        "/open-apis/contact/v3/users/find_by_department";
1352
1353    /// 用户搜索
1354    pub const CONTACT_V3_USERS_SEARCH: &'static str = "/open-apis/contact/v3/users/search";
1355
1356    /// 部门管理
1357    pub const CONTACT_V3_DEPARTMENTS: &'static str = "/open-apis/contact/v3/departments";
1358
1359    /// 部门批量获取
1360    pub const CONTACT_V3_DEPARTMENTS_BATCH: &'static str =
1361        "/open-apis/contact/v3/departments/batch";
1362
1363    /// 部门子部门查询
1364    pub const CONTACT_V3_DEPARTMENTS_CHILDREN: &'static str =
1365        "/open-apis/contact/v3/departments/children";
1366
1367    /// 部门父部门查询
1368    pub const CONTACT_V3_DEPARTMENTS_PARENT: &'static str =
1369        "/open-apis/contact/v3/departments/parent";
1370
1371    /// 部门搜索
1372    pub const CONTACT_V3_DEPARTMENTS_SEARCH: &'static str =
1373        "/open-apis/contact/v3/departments/search";
1374
1375    /// 职务管理
1376    pub const CONTACT_V3_JOB_TITLES: &'static str = "/open-apis/contact/v3/job_titles";
1377
1378    /// 职位族群管理
1379    pub const CONTACT_V3_JOB_FAMILIES: &'static str = "/open-apis/contact/v3/job_families";
1380
1381    /// 职级管理
1382    pub const CONTACT_V3_JOB_LEVELS: &'static str = "/open-apis/contact/v3/job_levels";
1383
1384    /// 功能角色管理
1385    pub const CONTACT_V3_FUNCTIONAL_ROLES: &'static str = "/open-apis/contact/v3/functional_roles";
1386
1387    /// 用户管理 - 带参数的端点
1388    pub const CONTACT_V3_USER_GET: &'static str = "/open-apis/contact/v3/users/{user_id}";
1389    pub const CONTACT_V3_USER_UPDATE_ID: &'static str =
1390        "/open-apis/contact/v3/users/{user_id}/update_user_id";
1391    pub const CONTACT_V3_USER_RESURRECT: &'static str =
1392        "/open-apis/contact/v3/users/{user_id}/resurrect";
1393
1394    /// 部门管理 - 带参数的端点
1395    pub const CONTACT_V3_DEPARTMENT_GET: &'static str =
1396        "/open-apis/contact/v3/departments/{department_id}";
1397    pub const CONTACT_V3_DEPARTMENT_UPDATE_ID: &'static str =
1398        "/open-apis/contact/v3/departments/{department_id}/update_department_id";
1399
1400    /// 职务管理 - 带参数的端点
1401    pub const CONTACT_V3_JOB_TITLE_GET: &'static str =
1402        "/open-apis/contact/v3/job_titles/{job_title_id}";
1403
1404    /// 职位族群管理 - 带参数的端点
1405    pub const CONTACT_V3_JOB_FAMILY_GET: &'static str =
1406        "/open-apis/contact/v3/job_families/{job_family_id}";
1407
1408    /// 职级管理 - 带参数的端点
1409    pub const CONTACT_V3_JOB_LEVEL_GET: &'static str =
1410        "/open-apis/contact/v3/job_levels/{job_level_id}";
1411
1412    /// 功能角色管理 - 带参数的端点
1413    pub const CONTACT_V3_FUNCTIONAL_ROLE_GET: &'static str =
1414        "/open-apis/contact/v3/functional_roles/{role_id}";
1415    pub const CONTACT_V3_FUNCTIONAL_ROLE_MEMBERS: &'static str =
1416        "/open-apis/contact/v3/functional_roles/{role_id}/members";
1417    pub const CONTACT_V3_FUNCTIONAL_ROLE_MEMBERS_BATCH_CREATE: &'static str =
1418        "/open-apis/contact/v3/functional_roles/{role_id}/members/batch_create";
1419    pub const CONTACT_V3_FUNCTIONAL_ROLE_MEMBERS_BATCH_DELETE: &'static str =
1420        "/open-apis/contact/v3/functional_roles/{role_id}/members/batch_delete";
1421    pub const CONTACT_V3_FUNCTIONAL_ROLE_MEMBERS_SCOPES: &'static str =
1422        "/open-apis/contact/v3/functional_roles/{role_id}/members/scopes";
1423    pub const CONTACT_V3_FUNCTIONAL_ROLE_MEMBER_GET: &'static str =
1424        "/open-apis/contact/v3/functional_roles/{role_id}/members/{member_id}";
1425
1426    /// 群组管理
1427    pub const CONTACT_V3_GROUPS: &'static str = "/open-apis/contact/v3/groups";
1428    pub const CONTACT_V3_GROUPS_SIMPLELIST: &'static str =
1429        "/open-apis/contact/v3/groups/simplelist";
1430    pub const CONTACT_V3_GROUPS_MEMBER_BELONG: &'static str =
1431        "/open-apis/contact/v3/groups/member_belong";
1432    pub const CONTACT_V3_GROUP_GET: &'static str = "/open-apis/contact/v3/groups/{group_id}";
1433    pub const CONTACT_V3_GROUP_DETAIL: &'static str =
1434        "/open-apis/contact/v3/groups/{group_id}/detail";
1435
1436    /// 群组成员管理
1437    pub const CONTACT_V3_GROUP_MEMBERS_ADD: &'static str =
1438        "/open-apis/contact/v3/groups/{group_id}/members/add";
1439    pub const CONTACT_V3_GROUP_MEMBERS_BATCH_ADD: &'static str =
1440        "/open-apis/contact/v3/groups/{group_id}/members/batch_add";
1441    pub const CONTACT_V3_GROUP_MEMBERS_REMOVE: &'static str =
1442        "/open-apis/contact/v3/groups/{group_id}/members/remove";
1443    pub const CONTACT_V3_GROUP_MEMBERS_BATCH_REMOVE: &'static str =
1444        "/open-apis/contact/v3/groups/{group_id}/members/batch_remove";
1445    pub const CONTACT_V3_GROUP_MEMBERS_SIMPLELIST: &'static str =
1446        "/open-apis/contact/v3/groups/{group_id}/members/simplelist";
1447
1448    /// 单位管理
1449    pub const CONTACT_V3_UNITS: &'static str = "/open-apis/contact/v3/units";
1450    pub const CONTACT_V3_UNIT_GET: &'static str = "/open-apis/contact/v3/units/{unit_id}";
1451    pub const CONTACT_V3_UNIT_BIND_DEPARTMENT: &'static str =
1452        "/open-apis/contact/v3/units/{unit_id}/bind_department";
1453    pub const CONTACT_V3_UNIT_UNBIND_DEPARTMENT: &'static str =
1454        "/open-apis/contact/v3/units/{unit_id}/unbind_department";
1455    pub const CONTACT_V3_UNIT_LIST_DEPARTMENT: &'static str =
1456        "/open-apis/contact/v3/units/{unit_id}/list_department";
1457
1458    /// 工作城市管理
1459    pub const CONTACT_V3_WORK_CITIES: &'static str = "/open-apis/contact/v3/work_cities";
1460    pub const CONTACT_V3_WORK_CITY_GET: &'static str =
1461        "/open-apis/contact/v3/work_cities/{work_city_id}";
1462
1463    /// 员工类型枚举管理
1464    pub const CONTACT_V3_EMPLOYEE_TYPE_ENUMS: &'static str =
1465        "/open-apis/contact/v3/employee_type_enums";
1466    pub const CONTACT_V3_EMPLOYEE_TYPE_ENUM_GET: &'static str =
1467        "/open-apis/contact/v3/employee_type_enums/{enum_id}";
1468
1469    /// 自定义属性管理
1470    pub const CONTACT_V3_CUSTOM_ATTRS: &'static str = "/open-apis/contact/v3/custom_attrs";
1471
1472    /// 权限范围管理
1473    pub const CONTACT_V3_SCOPES: &'static str = "/open-apis/contact/v3/scopes";
1474
1475    // ==================== 考勤服务端点 ====================
1476
1477    // 考勤组管理
1478    /// 考勤组列表查询
1479    pub const ATTENDANCE_V1_GROUPS: &'static str = "/open-apis/attendance/v1/groups";
1480
1481    /// 考勤组详情查询 (需要使用 EndpointBuilder::replace_param 替换 {group_id})
1482    pub const ATTENDANCE_V1_GROUP_GET: &'static str = "/open-apis/attendance/v1/groups/{group_id}";
1483
1484    /// 考勤组删除 (需要使用 EndpointBuilder::replace_param 替换 {group_id})
1485    pub const ATTENDANCE_V1_GROUP_DELETE: &'static str =
1486        "/open-apis/attendance/v1/groups/{group_id}";
1487
1488    /// 考勤组搜索
1489    pub const ATTENDANCE_V1_GROUPS_SEARCH: &'static str = "/open-apis/attendance/v1/groups/search";
1490
1491    /// 考勤组用户列表 (需要使用 EndpointBuilder::replace_param 替换 {group_id})
1492    pub const ATTENDANCE_V1_GROUP_USERS: &'static str =
1493        "/open-apis/attendance/v1/groups/{group_id}/users";
1494
1495    // 班次管理
1496    /// 班次列表查询
1497    pub const ATTENDANCE_V1_SHIFTS: &'static str = "/open-apis/attendance/v1/shifts";
1498
1499    /// 班次详情查询 (需要使用 EndpointBuilder::replace_param 替换 {shift_id})
1500    pub const ATTENDANCE_V1_SHIFT_GET: &'static str = "/open-apis/attendance/v1/shifts/{shift_id}";
1501
1502    /// 班次删除 (需要使用 EndpointBuilder::replace_param 替换 {shift_id})
1503    pub const ATTENDANCE_V1_SHIFT_DELETE: &'static str =
1504        "/open-apis/attendance/v1/shifts/{shift_id}";
1505
1506    /// 班次查询
1507    pub const ATTENDANCE_V1_SHIFTS_QUERY: &'static str = "/open-apis/attendance/v1/shifts/query";
1508
1509    // 用户任务管理
1510    /// 用户任务批量创建
1511    pub const ATTENDANCE_V1_USER_TASKS_BATCH_CREATE: &'static str =
1512        "/open-apis/attendance/v1/user_tasks/batch_create";
1513
1514    /// 用户任务查询
1515    pub const ATTENDANCE_V1_USER_TASKS_QUERY: &'static str =
1516        "/open-apis/attendance/v1/user_tasks/query";
1517
1518    /// 用户任务批量删除
1519    pub const ATTENDANCE_V1_USER_TASKS_BATCH_DELETE: &'static str =
1520        "/open-apis/attendance/v1/user_tasks/batch_del";
1521
1522    /// 用户任务结果查询
1523    pub const ATTENDANCE_V1_USER_TASK_RESULTS_QUERY: &'static str =
1524        "/open-apis/attendance/v1/user_task_results/query";
1525
1526    // 用户班表管理
1527    /// 用户班表批量创建
1528    pub const ATTENDANCE_V1_USER_DAILY_SHIFTS_BATCH_CREATE: &'static str =
1529        "/open-apis/attendance/v1/user_daily_shifts/batch_create";
1530
1531    /// 用户班表查询
1532    pub const ATTENDANCE_V1_USER_DAILY_SHIFTS_QUERY: &'static str =
1533        "/open-apis/attendance/v1/user_daily_shifts/query";
1534
1535    // 用户统计数据管理
1536    /// 用户统计数据查询
1537    pub const ATTENDANCE_V1_USER_STATS_DATAS_QUERY: &'static str =
1538        "/open-apis/attendance/v1/user_stats_datas/query";
1539
1540    /// 用户统计数据字段查询
1541    pub const ATTENDANCE_V1_USER_STATS_DATAS_QUERY_FIELDS: &'static str =
1542        "/open-apis/attendance/v1/user_stats_datas/query_fields";
1543
1544    /// 用户统计数据数据查询
1545    pub const ATTENDANCE_V1_USER_STATS_DATAS_QUERY_DATA: &'static str =
1546        "/open-apis/attendance/v1/user_stats_datas/query_data";
1547
1548    /// 用户统计数据更新
1549    pub const ATTENDANCE_V1_USER_STATS_DATAS_UPDATE: &'static str =
1550        "/open-apis/attendance/v1/user_stats_datas/update";
1551
1552    // 用户设置管理
1553    /// 用户设置查询
1554    pub const ATTENDANCE_V1_USER_SETTINGS_QUERY: &'static str =
1555        "/open-apis/attendance/v1/user_settings/query";
1556
1557    // 用户审批管理
1558    /// 用户审批列表
1559    pub const ATTENDANCE_V1_USER_APPROVALS: &'static str =
1560        "/open-apis/attendance/v1/user_approvals";
1561
1562    // 用户任务补救管理
1563    /// 用户任务补救列表
1564    pub const ATTENDANCE_V1_USER_TASK_REMEDYS: &'static str =
1565        "/open-apis/attendance/v1/user_task_remedys";
1566
1567    // 假期管理
1568    /// 离职假期过期记录
1569    pub const ATTENDANCE_V1_LEAVE_EMPLOY_EXPIRE_RECORDS: &'static str =
1570        "/open-apis/attendance/v1/leave_employ_expire_records";
1571
1572    // 归档规则管理
1573    /// 归档规则
1574    pub const ATTENDANCE_V1_ARCHIVE_RULES: &'static str = "/open-apis/attendance/v1/archive_rules";
1575
1576    /// 归档规则用户统计字段 (需要使用 EndpointBuilder::replace_param 替换 {archive_rule_id})
1577    pub const ATTENDANCE_V1_ARCHIVE_RULE_USER_STATS_FIELDS: &'static str =
1578        "/open-apis/attendance/v1/archive_rules/{archive_rule_id}/user_stats_fields";
1579
1580    /// 归档规则上传报表 (需要使用 EndpointBuilder::replace_param 替换 {archive_rule_id})
1581    pub const ATTENDANCE_V1_ARCHIVE_RULE_UPLOAD_REPORT: &'static str =
1582        "/open-apis/attendance/v1/archive_rules/{archive_rule_id}/upload_report";
1583
1584    /// 归档规则删除报表 (需要使用 EndpointBuilder::replace_param 替换 {archive_rule_id})
1585    pub const ATTENDANCE_V1_ARCHIVE_RULE_DEL_REPORT: &'static str =
1586        "/open-apis/attendance/v1/archive_rules/{archive_rule_id}/del_report";
1587
1588    // 用户设置管理
1589    /// 用户设置修改 (需要使用 EndpointBuilder::replace_param 替换 {user_id})
1590    pub const ATTENDANCE_V1_USER_SETTINGS_MODIFY: &'static str =
1591        "/open-apis/attendance/v1/user_settings/{user_id}/modify";
1592
1593    /// 用户设置上传 (需要使用 EndpointBuilder::replace_param 替换 {user_id})
1594    pub const ATTENDANCE_V1_USER_SETTINGS_UPLOAD: &'static str =
1595        "/open-apis/attendance/v1/user_settings/{user_id}/upload";
1596
1597    /// 用户设置下载 (需要使用 EndpointBuilder::replace_param 替换 {user_id})
1598    pub const ATTENDANCE_V1_USER_SETTINGS_DOWNLOAD: &'static str =
1599        "/open-apis/attendance/v1/user_settings/{user_id}/download";
1600
1601    // 用户审批管理
1602    /// 用户审批处理 (需要使用 EndpointBuilder::replace_param 替换 {approval_id})
1603    pub const ATTENDANCE_V1_USER_APPROVAL_PROCESS: &'static str =
1604        "/open-apis/attendance/v1/user_approvals/{approval_id}/process";
1605
1606    // 用户任务补救管理
1607    /// 查询用户允许的补救
1608    pub const ATTENDANCE_V1_USER_TASK_REMEDYS_QUERY_USER_ALLOWED_REMEDYS: &'static str =
1609        "/open-apis/attendance/v1/user_task_remedys/query_user_allowed_remedys";
1610
1611    // 用户班表管理
1612    /// 用户班表批量创建临时
1613    pub const ATTENDANCE_V1_USER_DAILY_SHIFTS_BATCH_CREATE_TEMP: &'static str =
1614        "/open-apis/attendance/v1/user_daily_shifts/batch_create_temp";
1615
1616    // 用户任务管理
1617    /// 用户任务获取 (需要使用 EndpointBuilder::replace_param 替换 {user_id})
1618    pub const ATTENDANCE_V1_USER_TASK_GET: &'static str =
1619        "/open-apis/attendance/v1/user_tasks/{user_id}/get";
1620
1621    // 假期管理
1622    /// 假期计提记录获取 (需要使用 EndpointBuilder::replace_param 替换 {leave_accrual_record_id})
1623    pub const ATTENDANCE_V1_LEAVE_ACCRUAL_RECORD_GET: &'static str =
1624        "/open-apis/attendance/v1/leave_accrual_records/{leave_accrual_record_id}";
1625
1626    // ==================== 客服工具服务端点 ====================
1627
1628    // 工单管理
1629    /// 开始服务
1630    pub const HELPDESK_V1_START_SERVICE: &'static str = "/open-apis/helpdesk/v1/start_service";
1631
1632    /// 工单列表
1633    pub const HELPDESK_V1_TICKETS: &'static str = "/open-apis/helpdesk/v1/tickets";
1634
1635    /// 工单详情
1636    pub const HELPDESK_V1_TICKET_GET: &'static str = "/open-apis/helpdesk/v1/tickets/{ticket_id}";
1637
1638    /// 工单更新
1639    pub const HELPDESK_V1_TICKET_UPDATE: &'static str =
1640        "/open-apis/helpdesk/v1/tickets/{ticket_id}";
1641
1642    // 工单消息管理
1643    /// 工单消息列表
1644    pub const HELPDESK_V1_TICKET_MESSAGES: &'static str =
1645        "/open-apis/helpdesk/v1/tickets/{ticket_id}/messages";
1646
1647    /// 工单消息创建
1648    pub const HELPDESK_V1_TICKET_MESSAGE_CREATE: &'static str =
1649        "/open-apis/helpdesk/v1/tickets/{ticket_id}/messages";
1650
1651    /// 工单机器人消息
1652    pub const HELPDESK_V1_TICKET_BOT_MESSAGES: &'static str =
1653        "/open-apis/helpdesk/v1/tickets/{ticket_id}/bot_messages";
1654
1655    // FAQ管理
1656    /// FAQ列表
1657    pub const HELPDESK_V1_FAQS: &'static str = "/open-apis/helpdesk/v1/faqs";
1658
1659    /// FAQ详情
1660    pub const HELPDESK_V1_FAQ_GET: &'static str = "/open-apis/helpdesk/v1/faqs/{faq_id}";
1661
1662    /// FAQ创建
1663    pub const HELPDESK_V1_FAQ_CREATE: &'static str = "/open-apis/helpdesk/v1/faqs";
1664
1665    /// FAQ更新
1666    pub const HELPDESK_V1_FAQ_UPDATE: &'static str = "/open-apis/helpdesk/v1/faqs/{faq_id}";
1667
1668    /// FAQ删除
1669    pub const HELPDESK_V1_FAQ_DELETE: &'static str = "/open-apis/helpdesk/v1/faqs/{faq_id}";
1670
1671    /// FAQ图片
1672    pub const HELPDESK_V1_FAQ_IMAGE: &'static str =
1673        "/open-apis/helpdesk/v1/faqs/{faq_id}/image/{image_key}";
1674
1675    /// FAQ搜索
1676    pub const HELPDESK_V1_FAQS_SEARCH: &'static str = "/open-apis/helpdesk/v1/faqs/search";
1677
1678    // 事件管理
1679    /// 事件订阅
1680    pub const HELPDESK_V1_EVENTS_SUBSCRIBE: &'static str =
1681        "/open-apis/helpdesk/v1/events/subscribe";
1682
1683    /// 事件取消订阅
1684    pub const HELPDESK_V1_EVENTS_UNSUBSCRIBE: &'static str =
1685        "/open-apis/helpdesk/v1/events/unsubscribe";
1686
1687    // 自定义字段管理
1688    /// 工单自定义字段列表
1689    pub const HELPDESK_V1_TICKET_CUSTOMIZED_FIELDS: &'static str =
1690        "/open-apis/helpdesk/v1/ticket_customized_fields";
1691
1692    /// 工单自定义字段详情
1693    pub const HELPDESK_V1_TICKET_CUSTOMIZED_FIELD_GET: &'static str =
1694        "/open-apis/helpdesk/v1/ticket_customized_fields/{field_id}";
1695
1696    /// 工单自定义字段创建
1697    pub const HELPDESK_V1_TICKET_CUSTOMIZED_FIELD_CREATE: &'static str =
1698        "/open-apis/helpdesk/v1/ticket_customized_fields";
1699
1700    /// 工单自定义字段更新
1701    pub const HELPDESK_V1_TICKET_CUSTOMIZED_FIELD_UPDATE: &'static str =
1702        "/open-apis/helpdesk/v1/ticket_customized_fields/{field_id}";
1703
1704    /// 工单自定义字段删除
1705    pub const HELPDESK_V1_TICKET_CUSTOMIZED_FIELD_DELETE: &'static str =
1706        "/open-apis/helpdesk/v1/ticket_customized_fields/{field_id}";
1707
1708    // 客服管理
1709    /// 客服详情
1710    pub const HELPDESK_V1_AGENT_GET: &'static str = "/open-apis/helpdesk/v1/agents/{agent_id}";
1711
1712    /// 客服邮箱
1713    pub const HELPDESK_V1_AGENT_EMAIL: &'static str =
1714        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_email";
1715
1716    // 客服排班管理
1717    /// 客服排班列表
1718    pub const HELPDESK_V1_AGENT_SCHEDULES: &'static str =
1719        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_schedules";
1720
1721    /// 客服排班详情
1722    pub const HELPDESK_V1_AGENT_SCHEDULE_GET: &'static str =
1723        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_schedules/{schedule_id}";
1724
1725    /// 客服排班创建
1726    pub const HELPDESK_V1_AGENT_SCHEDULE_CREATE: &'static str =
1727        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_schedules";
1728
1729    /// 客服排班更新
1730    pub const HELPDESK_V1_AGENT_SCHEDULE_UPDATE: &'static str =
1731        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_schedules/{schedule_id}";
1732
1733    /// 客服排班删除
1734    pub const HELPDESK_V1_AGENT_SCHEDULE_DELETE: &'static str =
1735        "/open-apis/helpdesk/v1/agents/{agent_id}/agent_schedules/{schedule_id}";
1736
1737    // 客服技能管理
1738    /// 客服技能列表
1739    pub const HELPDESK_V1_AGENT_SKILLS: &'static str = "/open-apis/helpdesk/v1/agent_skills";
1740
1741    /// 客服技能详情
1742    pub const HELPDESK_V1_AGENT_SKILL_GET: &'static str =
1743        "/open-apis/helpdesk/v1/agent_skills/{skill_id}";
1744
1745    /// 客服技能创建
1746    pub const HELPDESK_V1_AGENT_SKILL_CREATE: &'static str = "/open-apis/helpdesk/v1/agent_skills";
1747
1748    /// 客服技能更新
1749    pub const HELPDESK_V1_AGENT_SKILL_UPDATE: &'static str =
1750        "/open-apis/helpdesk/v1/agent_skills/{skill_id}";
1751
1752    /// 客服技能删除
1753    pub const HELPDESK_V1_AGENT_SKILL_DELETE: &'static str =
1754        "/open-apis/helpdesk/v1/agent_skills/{skill_id}";
1755
1756    // 客服技能规则管理
1757    /// 客服技能规则列表
1758    pub const HELPDESK_V1_AGENT_SKILL_RULES: &'static str =
1759        "/open-apis/helpdesk/v1/agent_skill_rules";
1760
1761    /// 客服技能规则操作选项
1762    pub const HELPDESK_V1_AGENT_SKILL_RULES_OPERATOR_OPTIONS: &'static str =
1763        "/open-apis/helpdesk/v1/agent_skill_rules/operator-options";
1764
1765    // 分类管理
1766    /// 分类列表
1767    pub const HELPDESK_V1_CATEGORIES: &'static str = "/open-apis/helpdesk/v1/categories";
1768
1769    /// 分类详情
1770    pub const HELPDESK_V1_CATEGORY_GET: &'static str =
1771        "/open-apis/helpdesk/v1/categories/{category_id}";
1772
1773    /// 分类创建
1774    pub const HELPDESK_V1_CATEGORY_CREATE: &'static str = "/open-apis/helpdesk/v1/categories";
1775
1776    /// 分类更新
1777    pub const HELPDESK_V1_CATEGORY_UPDATE: &'static str =
1778        "/open-apis/helpdesk/v1/categories/{category_id}";
1779
1780    /// 分类删除
1781    pub const HELPDESK_V1_CATEGORY_DELETE: &'static str =
1782        "/open-apis/helpdesk/v1/categories/{category_id}";
1783
1784    // 通知管理
1785    /// 通知列表
1786    pub const HELPDESK_V1_NOTIFICATIONS: &'static str = "/open-apis/helpdesk/v1/notifications";
1787
1788    /// 通知详情
1789    pub const HELPDESK_V1_NOTIFICATION_GET: &'static str =
1790        "/open-apis/helpdesk/v1/notifications/{notification_id}";
1791
1792    /// 通知预览
1793    pub const HELPDESK_V1_NOTIFICATION_PREVIEW: &'static str =
1794        "/open-apis/helpdesk/v1/notifications/{notification_id}/preview";
1795
1796    /// 通知创建
1797    pub const HELPDESK_V1_NOTIFICATION_CREATE: &'static str =
1798        "/open-apis/helpdesk/v1/notifications";
1799
1800    /// 通知更新
1801    pub const HELPDESK_V1_NOTIFICATION_UPDATE: &'static str =
1802        "/open-apis/helpdesk/v1/notifications/{notification_id}";
1803
1804    /// 通知提交审核
1805    pub const HELPDESK_V1_NOTIFICATION_SUBMIT_APPROVE: &'static str =
1806        "/open-apis/helpdesk/v1/notifications/{notification_id}/submit_approve";
1807
1808    /// 通知取消审核
1809    pub const HELPDESK_V1_NOTIFICATION_CANCEL_APPROVE: &'static str =
1810        "/open-apis/helpdesk/v1/notifications/{notification_id}/cancel_approve";
1811
1812    /// 通知执行推送
1813    pub const HELPDESK_V1_NOTIFICATION_EXECUTE_SEND: &'static str =
1814        "/open-apis/helpdesk/v1/notifications/{notification_id}/execute_send";
1815
1816    /// 通知取消发送
1817    pub const HELPDESK_V1_NOTIFICATION_CANCEL_SEND: &'static str =
1818        "/open-apis/helpdesk/v1/notifications/{notification_id}/cancel_send";
1819
1820    // ==================== 应用管理服务端点 ====================
1821
1822    // 应用管理
1823    /// 应用详情
1824    pub const APPLICATION_V6_APP_GET: &'static str =
1825        "/open-apis/application/v6/applications/{app_id}";
1826
1827    /// 应用转移所有者
1828    pub const APPLICATION_V6_APP_TRANSFER_OWNER: &'static str =
1829        "/open-apis/application/v6/applications/{app_id}/transfer_owner";
1830
1831    /// 应用协作者管理
1832    pub const APPLICATION_V6_APP_COLLABORATORS: &'static str =
1833        "/open-apis/application/v6/applications/{app_id}/collaborators";
1834
1835    /// 应用协作者删除
1836    pub const APPLICATION_V6_APP_COLLABORATOR_DELETE: &'static str =
1837        "/open-apis/application/v6/applications/{app_id}/collaborators";
1838
1839    /// 应用版本管理
1840    pub const APPLICATION_V6_APP_VERSIONS: &'static str =
1841        "/open-apis/application/v6/applications/{app_id}/versions";
1842
1843    /// 应用版本详情
1844    pub const APPLICATION_V6_APP_VERSION_GET: &'static str =
1845        "/open-apis/application/v6/applications/{app_id}/versions/{version_id}";
1846
1847    /// 待审核应用列表
1848    pub const APPLICATION_V6_APPS_UNDERAUDITLIST: &'static str =
1849        "/open-apis/application/v6/applications/underauditlist";
1850
1851    /// 应用审核
1852    pub const APPLICATION_V6_APP_AUDIT: &'static str =
1853        "/open-apis/application/v6/applications/{app_id}/audit";
1854
1855    /// 应用组管理
1856    pub const APPLICATION_V6_APP_GROUP: &'static str =
1857        "/open-apis/application/v6/applications/{app_id}/group";
1858
1859    // 应用使用情况
1860    /// 应用使用概览
1861    pub const APPLICATION_V6_APP_USAGE_OVERVIEW: &'static str =
1862        "/open-apis/application/v6/app_usage/{app_id}/overview";
1863
1864    /// 应用消息推送概览
1865    pub const APPLICATION_V6_APP_USAGE_MESSAGE_PUSH_OVERVIEW: &'static str =
1866        "/open-apis/application/v6/app_usage/{app_id}/message_push_overview";
1867
1868    /// 应用部门使用概览
1869    pub const APPLICATION_V6_APP_USAGE_DEPARTMENT_OVERVIEW: &'static str =
1870        "/open-apis/application/v6/app_usage/{app_id}/department_overview";
1871
1872    // 应用权限范围
1873    /// 应用权限范围申请
1874    pub const APPLICATION_V6_APP_SCOPE_APPLY: &'static str =
1875        "/open-apis/application/v6/applications/{app_id}/scope/apply";
1876
1877    /// 应用权限范围查询
1878    pub const APPLICATION_V6_APP_SCOPE_GET: &'static str =
1879        "/open-apis/application/v6/applications/{app_id}/scope";
1880
1881    // 应用徽章管理
1882    /// 应用徽章设置
1883    pub const APPLICATION_V6_APP_BADGE_SET: &'static str =
1884        "/open-apis/application/v6/app_badge/{app_id}/users/{user_id}/set";
1885
1886    // 应用反馈管理
1887    /// 应用反馈列表
1888    pub const APPLICATION_V6_APPLICATION_FEEDBACK: &'static str =
1889        "/open-apis/application/v6/application_feedback";
1890
1891    /// 应用反馈详情
1892    pub const APPLICATION_V6_APPLICATION_FEEDBACK_GET: &'static str =
1893        "/open-apis/application/v6/application_feedback/{feedback_id}";
1894
1895    // 管理员应用管理
1896    /// 管理员应用列表
1897    pub const APPLICATION_V6_ADMIN_APPS: &'static str = "/open-apis/application/v6/admin/apps";
1898
1899    /// 管理员应用启用
1900    pub const APPLICATION_V6_ADMIN_APP_ENABLE: &'static str =
1901        "/open-apis/application/v6/admin/apps/{app_id}/enable";
1902
1903    /// 管理员应用管理员列表
1904    pub const APPLICATION_V6_ADMIN_APP_ADMINS: &'static str =
1905        "/open-apis/application/v6/admin/apps/{app_id}/admins";
1906
1907    /// 应用可见性管理
1908    pub const APPLICATION_V6_ADMIN_APP_VISIBILITY: &'static str =
1909        "/open-apis/application/v6/admin/apps/{app_id}/visibility";
1910
1911    /// 应用可见性创建
1912    pub const APPLICATION_V6_ADMIN_APP_VISIBILITY_CREATE: &'static str =
1913        "/open-apis/application/v6/admin/apps/{app_id}/visibility";
1914
1915    /// 用户可用应用
1916    pub const APPLICATION_V6_ADMIN_USER_AVAILABLE_APPS: &'static str =
1917        "/open-apis/application/v6/admin/user_available_apps/{user_id}";
1918
1919    /// 应用联系人范围配置查询
1920    pub const APPLICATION_V6_ADMIN_APP_CONTACTS_RANGE_CONFIGURATION_GET: &'static str =
1921        "/open-apis/application/v6/admin/apps/{app_id}/contacts_range_configuration";
1922
1923    /// 应用联系人范围配置设置
1924    pub const APPLICATION_V6_ADMIN_APP_CONTACTS_RANGE_CONFIGURATION_SET: &'static str =
1925        "/open-apis/application/v6/admin/apps/{app_id}/contacts_range_configuration";
1926
1927    /// 应用白黑名单检查
1928    pub const APPLICATION_V6_ADMIN_APP_CHECK_WHITE_BLACK_LIST: &'static str =
1929        "/open-apis/application/v6/admin/apps/{app_id}/check_white_black_list";
1930
1931    /// 应用管理员管理权限
1932    pub const APPLICATION_V6_ADMIN_APP_ADMIN_MANAGEMENT_PERMISSIONS: &'static str =
1933        "/open-apis/application/v6/admin/apps/{app_id}/admins/{user_id}/management_permissions";
1934
1935    /// 应用管理员验证
1936    pub const APPLICATION_V6_ADMIN_APP_ADMIN_VERIFY: &'static str =
1937        "/open-apis/application/v6/admin/apps/{app_id}/admins/{user_id}/verify";
1938
1939    /// 应用版本联系人范围建议
1940    pub const APPLICATION_V6_APP_VERSION_CONTACTS_RANGE_SUGGEST: &'static str =
1941        "/open-apis/application/v6/applications/{app_id}/versions/{version_id}/contacts_range_suggest";
1942
1943    // 应用商店付费信息
1944    /// 应用商店定价计划检查
1945    pub const APPLICATION_V6_APPSTORE_PAID_INFO_CHECK: &'static str =
1946        "/open-apis/application/v6/appstore_paid_info/{app_id}/users/{user_id}/pricing_plans/{pricing_plan_id}/check";
1947
1948    /// 应用商店定价计划列表
1949    pub const APPLICATION_V6_APPSTORE_PAID_INFO_PRICING_PLANS: &'static str =
1950        "/open-apis/application/v6/appstore_paid_info/{app_id}/pricing_plans";
1951
1952    /// 应用商店订单详情
1953    pub const APPLICATION_V6_APPSTORE_PAID_INFO_ORDER_GET: &'static str =
1954        "/open-apis/application/v6/appstore_paid_info/{app_id}/orders/{order_id}";
1955
1956    // ==================== CloudDocs 云文档相关端点 ====================
1957
1958    // Assistant 助手服务
1959    /// 文档订阅
1960    pub const ASSISTANT_V1_FILE_SUBSCRIPTION: &'static str =
1961        "/open-apis/assistant/v1/file/{}/{}/subscription";
1962
1963    // Bitable 多维表格服务
1964    /// 多维表格应用管理
1965    pub const BITABLE_V1_APPS: &'static str = "/open-apis/bitable/v1/apps";
1966    pub const BITABLE_V1_APP_GET: &'static str = "/open-apis/bitable/v1/apps/{app_token}";
1967    pub const BITABLE_V1_APP_CREATE: &'static str = "/open-apis/bitable/v1/apps";
1968    pub const BITABLE_V1_APP_UPDATE: &'static str = "/open-apis/bitable/v1/apps/{app_token}";
1969    pub const BITABLE_V1_APP_COPY: &'static str = "/open-apis/bitable/v1/apps/{app_token}/copy";
1970
1971    /// 多维表格数据表管理
1972    pub const BITABLE_V1_TABLES: &'static str = "/open-apis/bitable/v1/apps/{app_token}/tables";
1973    pub const BITABLE_V1_TABLE_GET: &'static str = "/open-apis/bitable/v1/apps/{}/tables/{}";
1974    pub const BITABLE_V1_TABLE_CREATE: &'static str =
1975        "/open-apis/bitable/v1/apps/{app_token}/tables";
1976    pub const BITABLE_V1_TABLE_PATCH: &'static str =
1977        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}";
1978    pub const BITABLE_V1_TABLE_DELETE: &'static str =
1979        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}";
1980    pub const BITABLE_V1_TABLES_BATCH_CREATE: &'static str =
1981        "/open-apis/bitable/v1/apps/{app_token}/tables/batch_create";
1982    pub const BITABLE_V1_TABLES_BATCH_DELETE: &'static str =
1983        "/open-apis/bitable/v1/apps/{app_token}/tables/batch_delete";
1984
1985    /// 多维表格记录管理
1986    pub const BITABLE_V1_RECORDS: &'static str =
1987        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records";
1988    pub const BITABLE_V1_RECORD_GET: &'static str =
1989        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}";
1990    pub const BITABLE_V1_RECORD_CREATE: &'static str =
1991        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records";
1992    pub const BITABLE_V1_RECORD_UPDATE: &'static str =
1993        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}";
1994    pub const BITABLE_V1_RECORD_DELETE: &'static str =
1995        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/{record_id}";
1996    pub const BITABLE_V1_RECORDS_BATCH_CREATE: &'static str =
1997        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_create";
1998    pub const BITABLE_V1_RECORDS_BATCH_UPDATE: &'static str =
1999        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_update";
2000    pub const BITABLE_V1_RECORDS_BATCH_GET: &'static str =
2001        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_get";
2002    pub const BITABLE_V1_RECORDS_BATCH_DELETE: &'static str =
2003        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/batch_delete";
2004    pub const BITABLE_V1_RECORDS_SEARCH: &'static str =
2005        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/records/search";
2006
2007    /// 多维表格字段管理
2008    pub const BITABLE_V1_FIELDS: &'static str =
2009        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields";
2010    pub const BITABLE_V1_FIELD_GET: &'static str =
2011        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}";
2012    pub const BITABLE_V1_FIELD_CREATE: &'static str =
2013        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields";
2014    pub const BITABLE_V1_FIELD_UPDATE: &'static str =
2015        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}";
2016    pub const BITABLE_V1_FIELD_DELETE: &'static str =
2017        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/fields/{field_id}";
2018
2019    /// 多维表格视图管理
2020    pub const BITABLE_V1_VIEWS: &'static str =
2021        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views";
2022    pub const BITABLE_V1_VIEW_GET: &'static str =
2023        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}";
2024    pub const BITABLE_V1_VIEW_CREATE: &'static str =
2025        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views";
2026    pub const BITABLE_V1_VIEW_PATCH: &'static str =
2027        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}";
2028    pub const BITABLE_V1_VIEW_DELETE: &'static str =
2029        "/open-apis/bitable/v1/apps/{app_token}/tables/{table_id}/views/{view_id}";
2030
2031    /// 多维表格仪表板管理
2032    pub const BITABLE_V1_DASHBOARDS: &'static str =
2033        "/open-apis/bitable/v1/apps/{app_token}/dashboards";
2034    pub const BITABLE_V1_DASHBOARD_COPY: &'static str =
2035        "/open-apis/bitable/v1/apps/{app_token}/dashboards/{block_id}/copy";
2036
2037    /// 多维表格角色管理
2038    pub const BITABLE_V1_ROLES: &'static str = "/open-apis/bitable/v1/apps/{app_token}/roles";
2039    pub const BITABLE_V1_ROLE_GET: &'static str =
2040        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}";
2041    pub const BITABLE_V1_ROLE_CREATE: &'static str = "/open-apis/bitable/v1/apps/{app_token}/roles";
2042    pub const BITABLE_V1_ROLE_UPDATE: &'static str =
2043        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}";
2044    pub const BITABLE_V1_ROLE_DELETE: &'static str =
2045        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}";
2046
2047    /// 多维表格角色成员管理
2048    pub const BITABLE_V1_ROLE_MEMBERS: &'static str =
2049        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members";
2050    pub const BITABLE_V1_ROLE_MEMBER_CREATE: &'static str =
2051        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members";
2052    pub const BITABLE_V1_ROLE_MEMBER_DELETE: &'static str =
2053        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/{member_id}";
2054    pub const BITABLE_V1_ROLE_MEMBERS_BATCH_CREATE: &'static str =
2055        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_create";
2056    pub const BITABLE_V1_ROLE_MEMBERS_BATCH_DELETE: &'static str =
2057        "/open-apis/bitable/v1/apps/{app_token}/roles/{role_id}/members/batch_delete";
2058
2059    /// 多维表格表单管理
2060    pub const BITABLE_V1_FORMS: &'static str = "/open-apis/bitable/v1/apps/{app_token}/forms";
2061    pub const BITABLE_V1_FORM_GET: &'static str =
2062        "/open-apis/bitable/v1/apps/{app_token}/forms/{form_id}";
2063    pub const BITABLE_V1_FORM_PATCH: &'static str =
2064        "/open-apis/bitable/v1/apps/{app_token}/forms/{form_id}";
2065    pub const BITABLE_V1_FORM_PATCH_META: &'static str =
2066        "/open-apis/bitable/v1/apps/{app_token}/forms/{form_id}/questions";
2067    pub const BITABLE_V1_FORM_QUESTION: &'static str =
2068        "/open-apis/bitable/v1/apps/{app_token}/forms/{form_id}/questions/{question_id}";
2069
2070    /// 多维表格工作流管理
2071    pub const BITABLE_V1_WORKFLOWS: &'static str =
2072        "/open-apis/bitable/v1/apps/{app_token}/workflows";
2073    pub const BITABLE_V1_WORKFLOW_UPDATE: &'static str =
2074        "/open-apis/bitable/v1/apps/{app_token}/workflows/{workflow_id}";
2075
2076    // Board 白板服务
2077    /// 白板管理
2078    pub const BOARD_V1_WHITEBOARD_THUMBNAIL: &'static str =
2079        "/open-apis/whiteboard/v1/whiteboards/{}/thumbnail";
2080    pub const BOARD_V1_WHITEBOARD_NODES: &'static str = "/open-apis/board/v1/whiteboards/{}/nodes";
2081
2082    // Comments 评论服务
2083    /// 评论管理
2084    pub const COMMENT_V1_COMMENTS: &'static str = "/open-apis/comment/v1/comments";
2085    pub const COMMENT_V1_COMMENT_GET: &'static str = "/open-apis/comment/v1/comments/{}";
2086    pub const COMMENT_V1_COMMENT_CREATE: &'static str = "/open-apis/comment/v1/comments";
2087    pub const COMMENT_V1_COMMENT_PATCH: &'static str = "/open-apis/comment/v1/comments/{}";
2088    pub const COMMENT_V1_COMMENTS_BATCH_QUERY: &'static str =
2089        "/open-apis/comment/v1/comments/batch_query";
2090
2091    /// 评论回复管理
2092    pub const COMMENT_V1_COMMENT_REPLIES: &'static str =
2093        "/open-apis/comment/v1/comments/{}/replies";
2094    pub const COMMENT_V1_COMMENT_REPLY_UPDATE: &'static str =
2095        "/open-apis/comment/v1/comments/{comment_id}/replies/{reply_id}";
2096    pub const COMMENT_V1_COMMENT_REPLY_DELETE: &'static str =
2097        "/open-apis/comment/v1/comments/{comment_id}/replies/{reply_id}";
2098
2099    // Docx 文档服务
2100    /// 文档管理
2101    pub const DOCX_V1_DOCUMENTS: &'static str = "/open-apis/docx/v1/documents";
2102    pub const DOCX_V1_DOCUMENT_GET: &'static str = "/open-apis/docx/v1/documents/{}";
2103    pub const DOCX_V1_DOCUMENT_RAW_CONTENT: &'static str =
2104        "/open-apis/docx/v1/documents/{}/raw_content";
2105    pub const DOCX_V1_DOCUMENT_CONVERT: &'static str = "/open-apis/docx/v1/documents/{}/convert";
2106
2107    /// 文档块管理
2108    pub const DOCX_V1_DOCUMENT_BLOCKS: &'static str = "/open-apis/docx/v1/documents/{}/blocks";
2109    pub const DOCX_V1_DOCUMENT_BLOCK_GET: &'static str =
2110        "/open-apis/docx/v1/documents/{document_id}/blocks/{block_id}";
2111    pub const DOCX_V1_DOCUMENT_BLOCK_CHILDREN: &'static str =
2112        "/open-apis/docx/v1/documents/{}/blocks/{}/children";
2113    pub const DOCX_V1_DOCUMENT_BLOCKS_BATCH_UPDATE: &'static str =
2114        "/open-apis/docx/v1/documents/{document_id}/blocks/batch_update";
2115    pub const DOCX_V1_DOCUMENT_BLOCKS_BATCH_DELETE: &'static str =
2116        "/open-apis/docx/v1/documents/{}/blocks/batch_delete";
2117
2118    // Drive 云盘服务
2119    /// 文件管理
2120    pub const DRIVE_V1_FILES: &'static str = "/open-apis/drive/v1/files";
2121    pub const DRIVE_V1_FILE_GET: &'static str = "/open-apis/drive/v1/files/{}";
2122    pub const DRIVE_V1_FILE_COPY: &'static str = "/open-apis/drive/v1/files/{}/copy";
2123    pub const DRIVE_V1_FILE_DOWNLOAD: &'static str = "/open-apis/drive/v1/files/{}/download";
2124    pub const DRIVE_V1_FILE_STATISTICS: &'static str = "/open-apis/drive/v1/files/{}/statistics";
2125    pub const DRIVE_V1_FILE_VIEW_RECORDS: &'static str =
2126        "/open-apis/drive/v1/files/{}/view_records";
2127    pub const DRIVE_V1_FILE_LIKE_RECORDS: &'static str =
2128        "/open-apis/drive/v1/files/{}/like_records";
2129    pub const DRIVE_V1_FILES_CREATE_FOLDER: &'static str =
2130        "/open-apis/drive/v1/files/create_folder";
2131    pub const DRIVE_V1_FILES_CREATE_SHORTCUT: &'static str =
2132        "/open-apis/drive/v1/files/create_shortcut";
2133    pub const DRIVE_V1_FILES_SEARCH: &'static str = "/open-apis/drive/v1/files/search";
2134    pub const DRIVE_V1_FILES_SUBSCRIBE: &'static str = "/open-apis/drive/v1/files/subscribe";
2135
2136    /// 文件版本管理
2137    pub const DRIVE_V1_FILE_VERSIONS: &'static str = "/open-apis/drive/v1/files/{}/versions";
2138    pub const DRIVE_V1_FILE_VERSION_GET: &'static str = "/open-apis/drive/v1/files/{}/versions/{}";
2139
2140    /// 文件订阅管理
2141    pub const DRIVE_V1_FILE_SUBSCRIPTIONS: &'static str =
2142        "/open-apis/drive/v1/files/{}/subscriptions/{}";
2143
2144    /// 文件夹管理
2145    pub const DRIVE_V1_FOLDERS: &'static str = "/open-apis/drive/v1/folders";
2146    pub const DRIVE_V1_FOLDER_GET: &'static str = "/open-apis/drive/v1/folders/{}";
2147    pub const DRIVE_V1_FOLDER_CHILDREN: &'static str = "/open-apis/drive/v1/folders/{}/children";
2148    pub const DRIVE_V1_FOLDER_MOVE: &'static str = "/open-apis/drive/v1/folders/{}/move";
2149    pub const DRIVE_V1_FOLDERS_ROOT_FOLDER_META: &'static str =
2150        "/open-apis/drive/v1/folders/root_folder_meta";
2151
2152    /// 文件上传管理
2153    pub const DRIVE_V1_FILES_UPLOAD_ALL: &'static str = "/open-apis/drive/v1/files/upload_all";
2154    pub const DRIVE_V1_FILES_UPLOAD_PREPARE: &'static str =
2155        "/open-apis/drive/v1/files/upload_prepare";
2156    pub const DRIVE_V1_FILES_UPLOAD_PART: &'static str = "/open-apis/drive/v1/files/upload_part";
2157    pub const DRIVE_V1_FILES_UPLOAD_FINISH: &'static str =
2158        "/open-apis/drive/v1/files/upload_finish";
2159
2160    /// 媒体文件管理
2161    pub const DRIVE_V1_MEDIAS_UPLOAD_ALL: &'static str = "/open-apis/drive/v1/medias/upload_all";
2162    pub const DRIVE_V1_MEDIAS_UPLOAD_PREPARE: &'static str =
2163        "/open-apis/drive/v1/medias/upload_prepare";
2164    pub const DRIVE_V1_MEDIAS_UPLOAD_PART: &'static str = "/open-apis/drive/v1/medias/upload_part";
2165    pub const DRIVE_V1_MEDIAS_UPLOAD_FINISH: &'static str =
2166        "/open-apis/drive/v1/medias/upload_finish";
2167    pub const DRIVE_V1_MEDIAS_DOWNLOAD: &'static str = "/open-apis/drive/v1/medias/{}/download";
2168    pub const DRIVE_V1_MEDIAS_BATCH_GET_TMP_DOWNLOAD_URL: &'static str =
2169        "/open-apis/drive/v1/medias/batch_get_tmp_download_url";
2170
2171    /// 导入任务管理
2172    pub const DRIVE_V1_IMPORT_TASKS: &'static str = "/open-apis/drive/v1/import_tasks";
2173    pub const DRIVE_V1_IMPORT_TASK_GET: &'static str = "/open-apis/drive/v1/import_tasks/{}";
2174
2175    /// 元信息管理
2176    pub const DRIVE_V1_METAS_BATCH_QUERY: &'static str = "/open-apis/drive/v1/metas/batch_query";
2177
2178    /// 任务管理
2179    pub const DRIVE_V1_TASK_GET: &'static str = "/open-apis/drive/v1/tasks/{}";
2180
2181    /// 权限管理
2182    pub const DRIVE_V1_PERMISSIONS_MEMBERS: &'static str =
2183        "/open-apis/drive/v1/permissions/{}/members";
2184    pub const DRIVE_V1_PERMISSIONS_MEMBER_GET: &'static str =
2185        "/open-apis/drive/v1/permissions/{}/members/{}";
2186    pub const DRIVE_V1_PERMISSIONS_MEMBERS_BATCH_CREATE: &'static str =
2187        "/open-apis/drive/v1/permissions/{}/members/batch_create";
2188    pub const DRIVE_V1_PERMISSIONS_MEMBERS_AUTH: &'static str =
2189        "/open-apis/drive/v1/permissions/{}/members/auth";
2190    pub const DRIVE_V1_PERMISSIONS_MEMBERS_TRANSFER_OWNER: &'static str =
2191        "/open-apis/drive/v1/permissions/{}/members/transfer_owner";
2192    pub const DRIVE_V1_PERMISSIONS_PUBLIC: &'static str =
2193        "/open-apis/drive/v1/permissions/{}/public";
2194    pub const DRIVE_V1_PERMISSIONS_PUBLIC_PASSWORD: &'static str =
2195        "/open-apis/drive/v1/permissions/{}/public/password";
2196
2197    /// Drive v2 权限管理
2198    pub const DRIVE_V2_PERMISSIONS_PUBLIC: &'static str =
2199        "/open-apis/drive/v2/permissions/{}/public";
2200
2201    /// Drive Explorer
2202    pub const DRIVE_EXPLORER_V2_ROOT_FOLDER_META: &'static str =
2203        "/open-apis/drive/explorer/v2/root_folder/meta";
2204    pub const DRIVE_EXPLORER_V2_FOLDER_META: &'static str =
2205        "/open-apis/drive/explorer/v2/folder/{folder_token}/meta";
2206
2207    // Sheets 电子表格服务
2208    /// 电子表格管理 - v3
2209    pub const SHEETS_V3_SPREADSHEETS: &'static str = "/open-apis/sheets/v3/spreadsheets";
2210    pub const SHEETS_V3_SPREADSHEET_GET: &'static str = "/open-apis/sheets/v3/spreadsheets/{}";
2211    pub const SHEETS_V3_SPREADSHEET_CREATE: &'static str = "/open-apis/sheets/v3/spreadsheets";
2212    pub const SHEETS_V3_SPREADSHEET_PATCH: &'static str = "/open-apis/sheets/v3/spreadsheets/{}";
2213
2214    /// 电子表格工作表管理 - v3
2215    pub const SHEETS_V3_SPREADSHEET_SHEETS_QUERY: &'static str =
2216        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/query";
2217    pub const SHEETS_V3_SPREADSHEET_SHEET_GET: &'static str =
2218        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}";
2219
2220    /// 电子表格数据操作 - v3
2221    pub const SHEETS_V3_SPREADSHEET_VALUES_GET: &'static str =
2222        "/open-apis/sheets/v3/spreadsheets/{}/values/{}";
2223    pub const SHEETS_V3_SPREADSHEET_VALUES_BATCH_GET: &'static str =
2224        "/open-apis/sheets/v3/spreadsheets/{}/values/batch_get";
2225    pub const SHEETS_V3_SPREADSHEET_VALUES_BATCH_UPDATE: &'static str =
2226        "/open-apis/sheets/v3/spreadsheets/{}/values/batch_update";
2227    pub const SHEETS_V3_SPREADSHEET_VALUES_APPEND: &'static str =
2228        "/open-apis/sheets/v3/spreadsheets/{}/values/{}/append";
2229    pub const SHEETS_V3_SPREADSHEET_VALUES_PREPEND: &'static str =
2230        "/open-apis/sheets/v3/spreadsheets/{}/values/{}/prepend";
2231    pub const SHEETS_V3_SPREADSHEET_VALUES_IMAGE: &'static str =
2232        "/open-apis/sheets/v3/spreadsheets/{}/values_image";
2233
2234    /// 电子表格查找替换 - v3
2235    pub const SHEETS_V3_SPREADSHEET_SHEET_FIND: &'static str =
2236        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/find";
2237    pub const SHEETS_V3_SPREADSHEET_SHEET_REPLACE: &'static str =
2238        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/replace";
2239
2240    /// 电子表格合并拆分单元格 - v3
2241    pub const SHEETS_V3_SPREADSHEET_MERGE_CELLS: &'static str =
2242        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/merge_cells";
2243    pub const SHEETS_V3_SPREADSHEET_UNMERGE_CELLS: &'static str =
2244        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/unmerge_cells";
2245
2246    /// 电子表格样式管理 - v3
2247    pub const SHEETS_V3_SPREADSHEET_STYLE: &'static str =
2248        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/style";
2249    pub const SHEETS_V3_SPREADSHEET_STYLES_BATCH_UPDATE: &'static str =
2250        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/styles/batch_update";
2251
2252    /// 电子表格行列管理 - v3
2253    pub const SHEETS_V3_SPREADSHEET_DIMENSION_RANGE: &'static str =
2254        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/dimension_range";
2255    pub const SHEETS_V3_SPREADSHEET_DIMENSION_RANGE_INSERT: &'static str =
2256        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/dimension_range:insert";
2257    pub const SHEETS_V3_SPREADSHEET_MOVE_DIMENSION: &'static str =
2258        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/move_dimension";
2259
2260    /// 电子表格条件格式 - v3
2261    pub const SHEETS_V3_SPREADSHEET_CONDITION_FORMAT: &'static str =
2262        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/conditionFormat";
2263
2264    /// 电子表格数据验证 - v3
2265    pub const SHEETS_V3_SPREADSHEET_DATA_VALIDATION: &'static str =
2266        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/dataValidation";
2267    pub const SHEETS_V3_SPREADSHEET_DATA_VALIDATION_GET: &'static str =
2268        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/dataValidation/{}";
2269
2270    /// 电子表格保护范围 - v3
2271    pub const SHEETS_V3_SPREADSHEET_PROTECT_RANGE: &'static str =
2272        "/open-apis/sheets/v3/spreadsheets/{}/protect_range";
2273    pub const SHEETS_V3_SPREADSHEET_PROTECT_RANGE_GET: &'static str =
2274        "/open-apis/sheets/v3/spreadsheets/{}/protect_range/{}";
2275
2276    /// 电子表格筛选器 - v3
2277    pub const SHEETS_V3_SPREADSHEET_FILTER: &'static str =
2278        "/open-apis/sheets/v3/spreadsheets/{spreadsheet_token}/sheets/{sheet_id}/filter";
2279
2280    /// 电子表格筛选视图 - v3
2281    pub const SHEETS_V3_SPREADSHEET_FILTER_VIEWS: &'static str =
2282        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views";
2283    pub const SHEETS_V3_SPREADSHEET_FILTER_VIEW_GET: &'static str =
2284        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}";
2285
2286    /// 电子表格筛选视图条件 - v3
2287    pub const SHEETS_V3_SPREADSHEET_FILTER_VIEW_CONDITIONS: &'static str =
2288        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions";
2289    pub const SHEETS_V3_SPREADSHEET_FILTER_VIEW_CONDITION_GET: &'static str =
2290        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/filter_views/{}/conditions/{}";
2291
2292    /// 电子表格浮动图片 - v3
2293    pub const SHEETS_V3_SPREADSHEET_FLOAT_IMAGES: &'static str =
2294        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images";
2295    pub const SHEETS_V3_SPREADSHEET_FLOAT_IMAGE_GET: &'static str =
2296        "/open-apis/sheets/v3/spreadsheets/{}/sheets/{}/float_images/{}";
2297
2298    /// 电子表格管理 - v2
2299    pub const SHEETS_V2_SPREADSHEET_VALUES: &'static str =
2300        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values";
2301    pub const SHEETS_V2_SPREADSHEET_VALUES_RANGE: &'static str =
2302        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{range}";
2303    pub const SHEETS_V2_SPREADSHEET_VALUES_APPEND: &'static str =
2304        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_append";
2305    pub const SHEETS_V2_SPREADSHEET_VALUES_PREPEND: &'static str =
2306        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_prepend";
2307    pub const SHEETS_V2_SPREADSHEET_VALUES_BATCH_GET: &'static str =
2308        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_get";
2309    pub const SHEETS_V2_SPREADSHEET_VALUES_BATCH_UPDATE: &'static str =
2310        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_batch_update";
2311    pub const SHEETS_V2_SPREADSHEET_VALUES_IMAGE: &'static str =
2312        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values_image";
2313
2314    /// 电子表格样式管理 - v2
2315    pub const SHEETS_V2_SPREADSHEET_STYLE: &'static str =
2316        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/style";
2317    pub const SHEETS_V2_SPREADSHEET_STYLES_BATCH_UPDATE: &'static str =
2318        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/styles_batch_update";
2319
2320    /// 电子表格合并拆分单元格 - v2
2321    pub const SHEETS_V2_SPREADSHEET_MERGE_CELLS: &'static str =
2322        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/merge_cells";
2323    pub const SHEETS_V2_SPREADSHEET_UNMERGE_CELLS: &'static str =
2324        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/unmerge_cells";
2325
2326    /// 电子表格行列管理 - v2
2327    pub const SHEETS_V2_SPREADSHEET_DIMENSION_RANGE: &'static str =
2328        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/dimension_range";
2329    pub const SHEETS_V2_SPREADSHEET_INSERT_DIMENSION_RANGE: &'static str =
2330        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/insert_dimension_range";
2331
2332    /// 电子表格工作表管理 - v2
2333    pub const SHEETS_V2_SPREADSHEET_SHEETS_BATCH_UPDATE: &'static str =
2334        "/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/sheets_batch_update";
2335
2336    // Wiki 知识库服务
2337    /// 知识库空间管理
2338    pub const WIKI_V2_SPACES: &'static str = "/open-apis/wiki/v2/spaces";
2339    pub const WIKI_V2_SPACE_GET: &'static str = "/open-apis/wiki/v2/spaces/{}";
2340    pub const WIKI_V2_SPACE_CREATE: &'static str = "/open-apis/wiki/v2/spaces";
2341
2342    /// 知识库空间成员管理
2343    pub const WIKI_V2_SPACE_MEMBERS: &'static str = "/open-apis/wiki/v2/spaces/{}/members";
2344    pub const WIKI_V2_SPACE_MEMBER_CREATE: &'static str = "/open-apis/wiki/v2/spaces/{}/members";
2345    pub const WIKI_V2_SPACE_MEMBER_DELETE: &'static str = "/open-apis/wiki/v2/spaces/{}/members/{}";
2346
2347    /// 知识库节点管理
2348    pub const WIKI_V2_SPACE_NODES: &'static str = "/open-apis/wiki/v2/spaces/{}/nodes";
2349    pub const WIKI_V2_SPACE_NODE_GET: &'static str = "/open-apis/wiki/v2/spaces/{}/nodes/{}";
2350    pub const WIKI_V2_SPACE_NODE_CREATE: &'static str = "/open-apis/wiki/v2/spaces/{}/nodes";
2351    pub const WIKI_V2_SPACE_NODE_COPY: &'static str = "/open-apis/wiki/v2/spaces/{}/nodes/{}/copy";
2352    pub const WIKI_V2_SPACE_NODE_MOVE: &'static str = "/open-apis/wiki/v2/spaces/{}/nodes/{}/move";
2353    pub const WIKI_V2_SPACE_NODE_UPDATE_TITLE: &'static str =
2354        "/open-apis/wiki/v2/spaces/{}/nodes/{}/update_title";
2355
2356    /// 知识库设置管理
2357    pub const WIKI_V2_SPACE_SETTING_UPDATE: &'static str = "/open-apis/wiki/v2/spaces/{}/setting";
2358
2359    /// 知识库搜索
2360    pub const WIKI_V2_SEARCH: &'static str = "/open-apis/wiki/v2/search";
2361
2362    /// 知识库任务管理
2363    pub const WIKI_V2_TASKS_MOVE_DOCS_TO_WIKI: &'static str =
2364        "/open-apis/wiki/v2/tasks/move_docs_to_wiki";
2365    pub const WIKI_V2_TASK_GET: &'static str = "/open-apis/wiki/v2/tasks/{}";
2366
2367    // ==================== 邮件服务端点 ====================
2368
2369    // 邮件组管理
2370    /// 邮件组基础操作
2371    pub const MAIL_V1_MAILGROUPS: &'static str = "/open-apis/mail/v1/mailgroups";
2372
2373    /// 邮件组详情操作 (需要使用 EndpointBuilder::replace_param 替换 {mailgroup_id})
2374    pub const MAIL_V1_MAILGROUP: &'static str = "/open-apis/mail/v1/mailgroups/{mailgroup_id}";
2375
2376    // 邮件组管理员
2377    /// 批量创建邮件组管理员 (需要使用 EndpointBuilder::replace_param 替换 {mailgroup_id})
2378    pub const MAIL_V1_MAILGROUP_MANAGERS_BATCH_CREATE: &'static str =
2379        "/open-apis/mail/v1/mailgroups/{mailgroup_id}/managers/batch_create";
2380
2381    /// 批量删除邮件组管理员 (需要使用 EndpointBuilder::replace_param 替换 {mailgroup_id})
2382    pub const MAIL_V1_MAILGROUP_MANAGERS_BATCH_DELETE: &'static str =
2383        "/open-apis/mail/v1/mailgroups/{mailgroup_id}/managers/batch_delete";
2384
2385    /// 获取邮件组管理员列表 (需要使用 EndpointBuilder::replace_param 替换 {mailgroup_id})
2386    pub const MAIL_V1_MAILGROUP_MANAGERS: &'static str =
2387        "/open-apis/mail/v1/mailgroups/{mailgroup_id}/managers";
2388
2389    // 用户邮箱事件
2390    /// 订阅用户邮箱事件 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2391    pub const MAIL_V1_USER_MAILBOX_EVENTS_SUBSCRIBE: &'static str =
2392        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/events/subscribe";
2393
2394    /// 获取用户邮箱事件订阅状态 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2395    pub const MAIL_V1_USER_MAILBOX_EVENTS_SUBSCRIPTION: &'static str =
2396        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/events/subscription";
2397
2398    /// 取消订阅用户邮箱事件 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2399    pub const MAIL_V1_USER_MAILBOX_EVENTS_UNSUBSCRIBE: &'static str =
2400        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/events/unsubscribe";
2401
2402    // 用户邮箱文件夹
2403    /// 用户邮箱文件夹操作 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2404    pub const MAIL_V1_USER_MAILBOX_FOLDERS: &'static str =
2405        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/folders";
2406
2407    /// 用户邮箱文件夹详情操作 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id} 和 {folder_id})
2408    pub const MAIL_V1_USER_MAILBOX_FOLDER: &'static str =
2409        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/folders/{folder_id}";
2410
2411    // 用户邮箱消息
2412    /// 用户邮箱消息操作 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2413    pub const MAIL_V1_USER_MAILBOX_MESSAGES: &'static str =
2414        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/messages";
2415
2416    /// 用户邮箱消息详情 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id} 和 {message_id})
2417    pub const MAIL_V1_USER_MAILBOX_MESSAGE: &'static str =
2418        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/messages/{message_id}";
2419
2420    /// 通过卡片获取邮件消息 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2421    pub const MAIL_V1_USER_MAILBOX_MESSAGES_GET_BY_CARD: &'static str =
2422        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/messages/get_by_card";
2423
2424    // 用户邮箱规则
2425    /// 用户邮箱规则操作 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2426    pub const MAIL_V1_USER_MAILBOX_RULES: &'static str =
2427        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/rules";
2428
2429    /// 用户邮箱规则详情 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id} 和 {rule_id})
2430    pub const MAIL_V1_USER_MAILBOX_RULE: &'static str =
2431        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/rules/{rule_id}";
2432
2433    /// 重新排序用户邮箱规则 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2434    pub const MAIL_V1_USER_MAILBOX_RULES_REORDER: &'static str =
2435        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/rules/reorder";
2436
2437    // 用户邮箱联系人
2438    /// 用户邮箱联系人操作 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id})
2439    pub const MAIL_V1_USER_MAILBOX_MAIL_CONTACTS: &'static str =
2440        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/mail_contacts";
2441
2442    /// 用户邮箱联系人详情 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id} 和 {contact_id})
2443    pub const MAIL_V1_USER_MAILBOX_MAIL_CONTACT: &'static str =
2444        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/mail_contacts/{contact_id}";
2445
2446    // 用户邮箱附件
2447    /// 获取邮件附件下载链接 (需要使用 EndpointBuilder::replace_param 替换 {user_mailbox_id}, {message_id} 和 {attachment_id})
2448    pub const MAIL_V1_USER_MAILBOX_MESSAGE_ATTACHMENT_DOWNLOAD_URL: &'static str =
2449        "/open-apis/mail/v1/user_mailboxes/{user_mailbox_id}/messages/{message_id}/attachments/{attachment_id}/download_url";
2450
2451    // ==================== 目录服务相关端点 ====================
2452
2453    // ===== 部门管理端点 =====
2454    /// 创建部门
2455    pub const DIRECTORY_V1_DEPARTMENTS: &'static str = "/open-apis/directory/v1/departments";
2456
2457    /// 删除/更新部门 (需要使用 EndpointBuilder::replace_param 替换 {department_id})
2458    pub const DIRECTORY_V1_DEPARTMENT_GET: &'static str =
2459        "/open-apis/directory/v1/departments/{department_id}";
2460
2461    /// 搜索部门
2462    pub const DIRECTORY_V1_DEPARTMENTS_SEARCH: &'static str =
2463        "/open-apis/directory/v1/departments/search";
2464
2465    /// 筛选部门
2466    pub const DIRECTORY_V1_DEPARTMENTS_FILTER: &'static str =
2467        "/open-apis/directory/v1/departments/filter";
2468
2469    /// 批量获取部门
2470    pub const DIRECTORY_V1_DEPARTMENTS_MGET: &'static str =
2471        "/open-apis/directory/v1/departments/mget";
2472
2473    // ===== 员工管理端点 =====
2474    /// 创建员工
2475    pub const DIRECTORY_V1_EMPLOYEES: &'static str = "/open-apis/directory/v1/employees";
2476
2477    /// 删除/更新员工 (需要使用 EndpointBuilder::replace_param 替换 {employee_id})
2478    pub const DIRECTORY_V1_EMPLOYEE_GET: &'static str =
2479        "/open-apis/directory/v1/employees/{employee_id}";
2480
2481    /// 员工待离职 (需要使用 EndpointBuilder::replace_param 替换 {employee_id})
2482    pub const DIRECTORY_V1_EMPLOYEE_TO_BE_RESIGNED: &'static str =
2483        "/open-apis/directory/v1/employees/{employee_id}/to_be_resigned";
2484
2485    /// 员工转正 (需要使用 EndpointBuilder::replace_param 替换 {employee_id})
2486    pub const DIRECTORY_V1_EMPLOYEE_REGULAR: &'static str =
2487        "/open-apis/directory/v1/employees/{employee_id}/regular";
2488
2489    /// 员工复活 (需要使用 EndpointBuilder::replace_param 替换 {employee_id})
2490    pub const DIRECTORY_V1_EMPLOYEE_RESURRECT: &'static str =
2491        "/open-apis/directory/v1/employees/{employee_id}/resurrect";
2492
2493    /// 搜索员工
2494    pub const DIRECTORY_V1_EMPLOYEES_SEARCH: &'static str =
2495        "/open-apis/directory/v1/employees/search";
2496
2497    /// 筛选员工
2498    pub const DIRECTORY_V1_EMPLOYEES_FILTER: &'static str =
2499        "/open-apis/directory/v1/employees/filter";
2500
2501    /// 批量获取员工
2502    pub const DIRECTORY_V1_EMPLOYEES_MGET: &'static str = "/open-apis/directory/v1/employees/mget";
2503
2504    // ==================== 搜索服务端点 ====================
2505    /// 搜索用户 V1
2506    pub const SEARCH_V1_USER: &'static str = "/open-apis/search/v1/user";
2507
2508    /// 创建数据项
2509    pub const SEARCH_V2_DATA_ITEM_CREATE: &'static str =
2510        "/open-apis/search/v2/data_sources/{data_source_id}/items";
2511
2512    /// 批量创建数据项
2513    pub const SEARCH_V2_DATA_ITEM_BATCH_CREATE: &'static str =
2514        "/open-apis/search/v2/data_sources/{data_source_id}/items/batch_create";
2515
2516    /// 删除/获取数据项
2517    pub const SEARCH_V2_DATA_ITEM_OPERATION: &'static str =
2518        "/open-apis/search/v2/data_sources/{data_source_id}/items/{data_item_id}";
2519
2520    /// 搜索消息
2521    pub const SEARCH_V2_MESSAGE: &'static str = "/open-apis/search/v2/message";
2522
2523    /// 搜索应用
2524    pub const SEARCH_V2_APP: &'static str = "/open-apis/search/v2/app";
2525
2526    /// 数据源操作(创建/列表)
2527    pub const SEARCH_V2_DATA_SOURCES: &'static str = "/open-apis/search/v2/data_sources";
2528
2529    /// 数据源操作(删除/更新/获取)
2530    pub const SEARCH_V2_DATA_SOURCE_OPERATION: &'static str =
2531        "/open-apis/search/v2/data_sources/{data_source_id}";
2532
2533    /// 创建Schema
2534    pub const SEARCH_V2_SCHEMA_CREATE: &'static str =
2535        "/open-apis/search/v2/data_sources/{data_source_id}/schemas";
2536
2537    /// Schema操作(删除/更新/获取)
2538    pub const SEARCH_V2_SCHEMA_OPERATION: &'static str =
2539        "/open-apis/search/v2/data_sources/{data_source_id}/schemas/{schema_id}";
2540
2541    // ==================== OKR服务端点 ====================
2542    /// 查询评分列表
2543    pub const OKR_V1_REVIEWS_QUERY: &'static str = "/open-apis/okr/v1/reviews/query";
2544
2545    /// OKR列表
2546    pub const OKR_V1_OKRS: &'static str = "/open-apis/okr/v1/okrs";
2547
2548    /// 批量获取OKR
2549    pub const OKR_V1_OKRS_BATCH_GET: &'static str = "/open-apis/okr/v1/okrs/batch_get";
2550
2551    /// 周期规则列表
2552    pub const OKR_V1_PERIOD_RULES: &'static str = "/open-apis/okr/v1/period_rules";
2553
2554    /// 周期列表
2555    pub const OKR_V1_PERIODS: &'static str = "/open-apis/okr/v1/periods";
2556
2557    /// 周期详情
2558    pub const OKR_V1_PERIOD_GET: &'static str = "/open-apis/okr/v1/periods/{period_id}";
2559
2560    /// 进展记录列表
2561    pub const OKR_V1_PROGRESS_RECORDS: &'static str = "/open-apis/okr/v1/progress_records";
2562
2563    /// 进展记录操作(获取/更新/删除)
2564    pub const OKR_V1_PROGRESS_RECORD_OPERATION: &'static str =
2565        "/open-apis/okr/v1/progress_records/{progress_id}";
2566
2567    /// 进展记录上传
2568    pub const OKR_V1_PROGRESS_RECORDS_UPLOAD: &'static str =
2569        "/open-apis/okr/v1/progress_records/upload";
2570
2571    // ==================== Trust Party 可信第三方服务端点 ====================
2572
2573    // === 关联组织管理端点 ===
2574    /// 获取可见关联组织列表
2575    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS: &'static str =
2576        "/open-apis/trust_party/v1/collaboration_organizations";
2577
2578    /// 获取关联组织的部门和成员信息 (需要使用 EndpointBuilder::replace_param 替换 {org_id})
2579    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_VISIBLE: &'static str =
2580        "/open-apis/trust_party/v1/collaboration_organizations/{org_id}/visible_organization";
2581
2582    /// 获取关联组织详情 (需要使用 EndpointBuilder::replace_param 替换 {org_id})
2583    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_GET: &'static str =
2584        "/open-apis/trust_party/v1/collaboration_organizations/{org_id}";
2585
2586    /// 获取关联组织成员详情 (需要使用 EndpointBuilder::replace_params 替换 {org_id} 和 {user_id})
2587    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_USER_GET: &'static str =
2588        "/open-apis/trust_party/v1/collaboration_organizations/{org_id}/users/{user_id}";
2589
2590    /// 获取关联组织部门详情 (需要使用 EndpointBuilder::replace_params 替换 {org_id} 和 {department_id})
2591    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_DEPARTMENT_GET: &'static str =
2592        "/open-apis/trust_party/v1/collaboration_organizations/{org_id}/departments/{department_id}";
2593
2594    /// 获取关联组织双方共享成员范围 (需要使用 EndpointBuilder::replace_param 替换 {org_id})
2595    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_SHARED_MEMBER_SCOPES: &'static str =
2596        "/open-apis/trust_party/v1/collaboration_organizations/{org_id}/shared_member_scopes";
2597
2598    /// 管理员获取所有关联组织列表
2599    pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS_ADMIN: &'static str =
2600        "/open-apis/trust_party/v1/collaboration_organizations/admin";
2601
2602    // === 可搜可见规则管理端点 ===
2603    /// 可搜可见规则操作(创建/查询)
2604    pub const TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULES: &'static str =
2605        "/open-apis/trust_party/v1/searchable_and_visible_rules";
2606
2607    /// 可搜可见规则操作(更新/删除) (需要使用 EndpointBuilder::replace_param 替换 {rule_id})
2608    pub const TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULE_OPERATION: &'static str =
2609        "/open-apis/trust_party/v1/searchable_and_visible_rules/{rule_id}";
2610
2611    // ==================== Cardkit服务端点 ====================
2612    /// 创建卡片
2613    pub const CARDKIT_V1_CARDS: &'static str = "/open-apis/cardkit/v1/cards";
2614
2615    /// 创建卡片元素
2616    pub const CARDKIT_V1_CARD_ELEMENTS: &'static str =
2617        "/open-apis/cardkit/v1/cards/{card_id}/elements";
2618
2619    /// 卡片设置
2620    pub const CARDKIT_V1_CARD_SETTINGS: &'static str =
2621        "/open-apis/cardkit/v1/cards/{card_id}/settings";
2622
2623    /// 更新卡片
2624    pub const CARDKIT_V1_CARD_UPDATE: &'static str = "/open-apis/cardkit/v1/cards/{card_id}";
2625
2626    /// 批量更新卡片
2627    pub const CARDKIT_V1_CARD_BATCH_UPDATE: &'static str =
2628        "/open-apis/cardkit/v1/cards/{card_id}/batch_update";
2629
2630    // ==================== Aily服务端点 ====================
2631    /// 会话列表/创建
2632    pub const AILY_V1_SESSIONS: &'static str = "/open-apis/aily/v1/sessions";
2633
2634    /// 会话操作(获取/更新/删除)
2635    pub const AILY_V1_SESSION_OPERATION: &'static str = "/open-apis/aily/v1/sessions/{session_id}";
2636
2637    /// 运行列表/创建
2638    pub const AILY_V1_RUNS: &'static str = "/open-apis/aily/v1/sessions/{session_id}/runs";
2639
2640    /// 运行操作(获取)
2641    pub const AILY_V1_RUN_GET: &'static str =
2642        "/open-apis/aily/v1/sessions/{session_id}/runs/{run_id}";
2643
2644    /// 取消运行
2645    pub const AILY_V1_RUN_CANCEL: &'static str =
2646        "/open-apis/aily/v1/sessions/{session_id}/runs/{run_id}/cancel";
2647
2648    /// 知识库问答
2649    pub const AILY_V1_DATA_KNOWLEDGE_ASK: &'static str = "/open-apis/aily/v1/data_knowledge/ask";
2650
2651    /// 知识库文件上传
2652    pub const AILY_V1_DATA_KNOWLEDGE_UPLOAD_FILE: &'static str =
2653        "/open-apis/aily/v1/data_knowledge/upload_file";
2654
2655    /// 知识库操作(创建/列表)
2656    pub const AILY_V1_DATA_KNOWLEDGE: &'static str = "/open-apis/aily/v1/data_knowledge";
2657
2658    /// 知识库操作(获取/删除)
2659    pub const AILY_V1_DATA_KNOWLEDGE_OPERATION: &'static str =
2660        "/open-apis/aily/v1/data_knowledge/{knowledge_id}";
2661
2662    /// 知识库分类
2663    pub const AILY_V1_DATA_KNOWLEDGE_CATEGORIES: &'static str =
2664        "/open-apis/aily/v1/data_knowledge/categories";
2665
2666    /// 消息操作(创建/列表)
2667    pub const AILY_V1_MESSAGES: &'static str = "/open-apis/aily/v1/sessions/{session_id}/messages";
2668
2669    /// 消息获取
2670    pub const AILY_V1_MESSAGE_GET: &'static str =
2671        "/open-apis/aily/v1/sessions/{session_id}/messages/{message_id}";
2672
2673    /// 技能启动
2674    pub const AILY_V1_SKILL_START: &'static str = "/open-apis/aily/v1/skills/{skill_id}/start";
2675
2676    /// 技能获取
2677    pub const AILY_V1_SKILL_GET: &'static str = "/open-apis/aily/v1/skills/{skill_id}";
2678
2679    /// 技能列表
2680    pub const AILY_V1_SKILLS: &'static str = "/open-apis/aily/v1/skills";
2681
2682    // ==================== ACS服务端点 ====================
2683    /// 设备列表
2684    pub const ACS_V1_DEVICES: &'static str = "/open-apis/acs/v1/devices";
2685
2686    /// 访客操作(创建/列表)
2687    pub const ACS_V1_VISITORS: &'static str = "/open-apis/acs/v1/visitors";
2688
2689    /// 访客获取
2690    pub const ACS_V1_VISITOR_GET: &'static str = "/open-apis/acs/v1/visitors/{visitor_id}";
2691
2692    /// 门禁记录列表
2693    pub const ACS_V1_ACCESS_RECORDS: &'static str = "/open-apis/acs/v1/access_records";
2694
2695    /// 门禁记录人脸图像
2696    pub const ACS_V1_ACCESS_RECORD_FACE_IMAGE: &'static str =
2697        "/open-apis/acs/v1/access_records/{record_id}/face_image";
2698
2699    /// 外部规则操作(创建/列表)
2700    pub const ACS_V1_RULE_EXTERNAL: &'static str = "/open-apis/acs/v1/rule_external";
2701
2702    /// 外部规则操作(获取/删除)
2703    pub const ACS_V1_RULE_EXTERNAL_OPERATION: &'static str =
2704        "/open-apis/acs/v1/rule_external/{rule_id}";
2705
2706    /// 外部规则设备绑定
2707    pub const ACS_V1_RULE_EXTERNAL_DEVICE_BIND: &'static str =
2708        "/open-apis/acs/v1/rule_external/device_bind";
2709
2710    /// 用户操作(获取/删除)
2711    pub const ACS_V1_USER_OPERATION: &'static str = "/open-apis/acs/v1/users/{user_id}";
2712
2713    /// 用户列表
2714    pub const ACS_V1_USERS: &'static str = "/open-apis/acs/v1/users";
2715
2716    /// 用户人脸图像(获取/上传)
2717    pub const ACS_V1_USER_FACE_IMAGE: &'static str = "/open-apis/acs/v1/users/{user_id}/face_image";
2718
2719    // ==================== 管理后台服务端点 ====================
2720
2721    /// 勋章管理 - 创建勋章
2722    pub const ADMIN_V1_BADGES_CREATE: &'static str = "/open-apis/admin/v1/badges";
2723
2724    /// 勋章管理 - 获取勋章列表
2725    pub const ADMIN_V1_BADGES_LIST: &'static str = "/open-apis/admin/v1/badges";
2726
2727    /// 勋章管理 - 操作勋章(获取/更新)
2728    pub const ADMIN_V1_BADGES_OPERATION: &'static str = "/open-apis/admin/v1/badges/{badge_id}";
2729
2730    /// 勋章管理 - 上传勋章图片
2731    pub const ADMIN_V1_BADGES_IMAGE_UPLOAD: &'static str = "/open-apis/admin/v1/badges/image";
2732
2733    /// 勋章授予名单 - 创建授予名单
2734    pub const ADMIN_V1_BADGE_GRANTS_CREATE: &'static str = "/open-apis/admin/v1/badge_grants";
2735
2736    /// 勋章授予名单 - 获取授予名单列表
2737    pub const ADMIN_V1_BADGE_GRANTS_LIST: &'static str = "/open-apis/admin/v1/badge_grants";
2738
2739    /// 勋章授予名单 - 操作授予名单(获取/更新/删除)
2740    pub const ADMIN_V1_BADGE_GRANTS_OPERATION: &'static str =
2741        "/open-apis/admin/v1/badge_grants/{grant_id}";
2742
2743    /// 密码管理 - 重置密码
2744    pub const ADMIN_V1_PASSWORD_RESET: &'static str = "/open-apis/admin/v1/password/reset";
2745
2746    /// 数据报表 - 部门维度数据
2747    pub const ADMIN_V1_DATA_REPORT_DEPARTMENT: &'static str =
2748        "/open-apis/admin/v1/data_report/department";
2749
2750    /// 数据报表 - 用户维度数据
2751    pub const ADMIN_V1_DATA_REPORT_USER: &'static str = "/open-apis/admin/v1/data_report/user";
2752
2753    // ==================== 妙记服务端点 ====================
2754
2755    /// 获取妙记信息 (需要使用 EndpointBuilder::replace_param 替换 {minute_token})
2756    pub const MINUTES_V1_MINUTE_GET: &'static str = "/open-apis/minutes/v1/{minute_token}";
2757
2758    /// 获取妙记统计数据 (需要使用 EndpointBuilder::replace_param 替换 {minute_token})
2759    pub const MINUTES_V1_STATISTICS_GET: &'static str =
2760        "/open-apis/minutes/v1/{minute_token}/statistics";
2761
2762    /// 导出妙记文字记录 (需要使用 EndpointBuilder::replace_param 替换 {minute_token})
2763    pub const MINUTES_V1_TRANSCRIPT_GET: &'static str =
2764        "/open-apis/minutes/v1/{minute_token}/transcript";
2765
2766    /// 下载妙记音视频文件 (需要使用 EndpointBuilder::replace_param 替换 {minute_token})
2767    pub const MINUTES_V1_MEDIA_GET: &'static str = "/open-apis/minutes/v1/{minute_token}/media";
2768
2769    // ==================== 实名认证服务端点 ====================
2770    /// 录入身份信息
2771    pub const HUMAN_AUTHENTICATION_V1_IDENTITIES: &'static str =
2772        "/open-apis/human_authentication/v1/identities";
2773    /// 上传人脸基准图片
2774    pub const HUMAN_AUTHENTICATION_V1_FACE_IMAGES: &'static str =
2775        "/open-apis/human_authentication/v1/face_images";
2776    /// 裁剪人脸图片
2777    pub const HUMAN_AUTHENTICATION_V1_FACE_IMAGES_CROP: &'static str =
2778        "/open-apis/human_authentication/v1/face_images/crop";
2779    /// 查询人脸认证结果 (需要使用 EndpointBuilder::replace_param 替换 {identity_id})
2780    pub const HUMAN_AUTHENTICATION_V1_IDENTITY_RESULT: &'static str =
2781        "/open-apis/human_authentication/v1/identities/{identity_id}/result";
2782
2783    // ==================== MDM设备管理服务端点 ====================
2784    /// 批量查询国家/地区
2785    pub const MDM_V1_COUNTRY_REGIONS_BATCH_GET: &'static str =
2786        "/open-apis/mdm/v1/country_regions/batch_get";
2787    /// 分页查询国家/地区
2788    pub const MDM_V1_COUNTRY_REGIONS: &'static str = "/open-apis/mdm/v1/country_regions";
2789    /// 用户数据维度绑定
2790    pub const MDM_V1_USER_AUTH_DATA_RELATIONS_BIND: &'static str =
2791        "/open-apis/mdm/v1/user_auth_data_relations/bind";
2792    /// 用户数据维度解绑
2793    pub const MDM_V1_USER_AUTH_DATA_RELATIONS_UNBIND: &'static str =
2794        "/open-apis/mdm/v1/user_auth_data_relations/unbind";
2795
2796    // ==================== Security and Compliance 安全与合规相关端点 ====================
2797    /// 行为审计日志数据获取
2798    pub const SECURITY_AND_COMPLIANCE_V1_AUDIT_DATAS: &'static str =
2799        "/open-apis/security_and_compliance/v1/audit_datas";
2800
2801    /// OpenAPI 审计日志数据列表
2802    pub const SECURITY_AND_COMPLIANCE_V1_OPENAPI_LOGS_LIST_DATA: &'static str =
2803        "/open-apis/security_and_compliance/v1/openapi_logs/list_data";
2804
2805    // ==================== Report 汇报相关端点 ====================
2806    /// 任务查询
2807    pub const REPORT_V1_TASKS_QUERY: &'static str = "/open-apis/report/v1/tasks/query";
2808
2809    /// 规则查询
2810    pub const REPORT_V1_RULES_QUERY: &'static str = "/open-apis/report/v1/rules/query";
2811
2812    /// 规则看板操作
2813    pub const REPORT_V1_RULE_VIEWS_OPERATION: &'static str =
2814        "/open-apis/report/v1/rule-views/{view_id}";
2815
2816    // ==================== Authentication 用户认证相关端点 ====================
2817    /// 获取用户信息
2818    pub const AUTHEN_V1_USER_INFO: &'static str = "/open-apis/authen/v1/user_info";
2819
2820    // ==================== Calendar 日历相关端点 (补充) ====================
2821    /// 日历管理
2822    pub const CALENDAR_V4_CALENDARS: &'static str = "/open-apis/calendar/v4/calendars";
2823
2824    /// 日历详情操作
2825    pub const CALENDAR_V4_CALENDAR_OPERATION: &'static str =
2826        "/open-apis/calendar/v4/calendars/{calendar_id}";
2827}
2828
2829/// API端点构建辅助函数
2830///
2831/// 提供用于动态构建包含路径参数的API端点的辅助函数。
2832/// 这些函数可以安全地替换路径模板中的占位符。
2833pub struct EndpointBuilder;
2834
2835impl EndpointBuilder {
2836    /// 替换单个路径参数
2837    ///
2838    /// # 示例
2839    /// ```rust
2840    /// use open_lark::core::endpoints::EndpointBuilder;
2841    /// let path = EndpointBuilder::replace_param(
2842    ///     "/open-apis/vc/v1/rooms/{room_id}",
2843    ///     "room_id",
2844    ///     "room_123"
2845    /// );
2846    /// assert_eq!(path, "/open-apis/vc/v1/rooms/room_123");
2847    /// ```
2848    pub fn replace_param(template: &str, param_name: &str, value: &str) -> String {
2849        template.replace(&format!("{{{}}}", param_name), value)
2850    }
2851
2852    /// 替换多个路径参数
2853    ///
2854    /// # 示例
2855    /// ```rust
2856    /// use std::collections::HashMap;
2857    /// use open_lark::core::endpoints::EndpointBuilder;
2858    /// let mut params = HashMap::new();
2859    /// params.insert("calendar_id".to_string(), "cal_123".to_string());
2860    /// params.insert("event_id".to_string(), "event_456".to_string());
2861    /// let path = EndpointBuilder::replace_params(
2862    ///     "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}",
2863    ///     &params
2864    /// );
2865    /// assert_eq!(path, "/open-apis/calendar/v4/calendars/cal_123/events/event_456");
2866    /// ```
2867    pub fn replace_params(
2868        template: &str,
2869        params: &std::collections::HashMap<String, String>,
2870    ) -> String {
2871        let mut result = template.to_string();
2872        for (key, value) in params {
2873            result = result.replace(&format!("{{{}}}", key), value);
2874        }
2875        result
2876    }
2877
2878    /// 从字符串数组替换多个路径参数
2879    ///
2880    /// # 示例
2881    /// ```rust
2882    /// use open_lark::core::endpoints::EndpointBuilder;
2883    /// let path = EndpointBuilder::replace_params_from_array(
2884    ///     "/open-apis/vc/v1/rooms/{room_id}/members/{user_id}",
2885    ///     &[("room_id", "room_123"), ("user_id", "user_456")]
2886    /// );
2887    /// assert_eq!(path, "/open-apis/vc/v1/rooms/room_123/members/user_456");
2888    /// ```
2889    pub fn replace_params_from_array(template: &str, params: &[(&str, &str)]) -> String {
2890        let mut result = template.to_string();
2891        for (key, value) in params {
2892            result = result.replace(&format!("{{{}}}", key), value);
2893        }
2894        result
2895    }
2896
2897    /// 创建日历端点构建器
2898    pub fn calendar(calendar_id: &str) -> CalendarEndpointBuilder {
2899        CalendarEndpointBuilder {
2900            calendar_id: calendar_id.to_string(),
2901        }
2902    }
2903
2904    /// 创建日历事件端点构建器
2905    pub fn calendar_event(calendar_id: &str, event_id: &str) -> CalendarEventEndpointBuilder {
2906        CalendarEventEndpointBuilder {
2907            calendar_id: calendar_id.to_string(),
2908            event_id: event_id.to_string(),
2909        }
2910    }
2911
2912    /// 创建即时消息端点构建器
2913    pub fn im_message(message_id: &str) -> ImMessageEndpointBuilder {
2914        ImMessageEndpointBuilder {
2915            message_id: message_id.to_string(),
2916        }
2917    }
2918
2919    // VC相关Builder方法已迁移至对应的vc服务模块
2920
2921    /// 创建工作台端点构建器
2922    pub fn workplace() -> WorkplaceEndpointBuilder {
2923        WorkplaceEndpointBuilder {}
2924    }
2925}
2926
2927/// 日历端点构建器
2928pub struct CalendarEndpointBuilder {
2929    calendar_id: String,
2930}
2931
2932impl CalendarEndpointBuilder {
2933    /// 获取日历详情端点
2934    pub fn get(&self) -> String {
2935        EndpointBuilder::replace_param(Endpoints::CALENDAR_GET, "calendar_id", &self.calendar_id)
2936    }
2937
2938    /// 更新日历端点
2939    pub fn patch(&self) -> String {
2940        EndpointBuilder::replace_param(Endpoints::CALENDAR_UPDATE, "calendar_id", &self.calendar_id)
2941    }
2942
2943    /// 删除日历端点
2944    pub fn delete(&self) -> String {
2945        EndpointBuilder::replace_param(Endpoints::CALENDAR_DELETE, "calendar_id", &self.calendar_id)
2946    }
2947
2948    /// 设置主日历端点
2949    pub fn set_primary(&self) -> String {
2950        EndpointBuilder::replace_param(
2951            Endpoints::CALENDAR_PRIMARY,
2952            "calendar_id",
2953            &self.calendar_id,
2954        )
2955    }
2956
2957    /// 搜索日历端点
2958    pub fn search(&self) -> String {
2959        EndpointBuilder::replace_param(Endpoints::CALENDAR_SEARCH, "calendar_id", &self.calendar_id)
2960    }
2961}
2962
2963/// 日历事件端点构建器
2964pub struct CalendarEventEndpointBuilder {
2965    calendar_id: String,
2966    event_id: String,
2967}
2968
2969impl CalendarEventEndpointBuilder {
2970    /// 创建事件端点
2971    pub fn create(&self) -> String {
2972        EndpointBuilder::replace_param(
2973            Endpoints::CALENDAR_EVENT_CREATE,
2974            "calendar_id",
2975            &self.calendar_id,
2976        )
2977    }
2978
2979    /// 获取事件详情端点
2980    pub fn get(&self) -> String {
2981        let temp = EndpointBuilder::replace_param(
2982            Endpoints::CALENDAR_EVENT_GET,
2983            "calendar_id",
2984            &self.calendar_id,
2985        );
2986        EndpointBuilder::replace_param(&temp, "event_id", &self.event_id)
2987    }
2988
2989    /// 更新事件端点
2990    pub fn patch(&self) -> String {
2991        let temp = EndpointBuilder::replace_param(
2992            Endpoints::CALENDAR_EVENT_UPDATE,
2993            "calendar_id",
2994            &self.calendar_id,
2995        );
2996        EndpointBuilder::replace_param(&temp, "event_id", &self.event_id)
2997    }
2998
2999    /// 删除事件端点
3000    pub fn delete(&self) -> String {
3001        let temp = EndpointBuilder::replace_param(
3002            Endpoints::CALENDAR_EVENT_DELETE,
3003            "calendar_id",
3004            &self.calendar_id,
3005        );
3006        EndpointBuilder::replace_param(&temp, "event_id", &self.event_id)
3007    }
3008
3009    /// 回复事件邀请端点
3010    pub fn reply(&self) -> String {
3011        let temp = EndpointBuilder::replace_param(
3012            Endpoints::CALENDAR_EVENT_REPLY,
3013            "calendar_id",
3014            &self.calendar_id,
3015        );
3016        EndpointBuilder::replace_param(&temp, "event_id", &self.event_id)
3017    }
3018
3019    /// 搜索事件端点
3020    pub fn search(&self) -> String {
3021        let temp = EndpointBuilder::replace_param(
3022            Endpoints::CALENDAR_EVENT_SEARCH,
3023            "calendar_id",
3024            &self.calendar_id,
3025        );
3026        EndpointBuilder::replace_param(&temp, "event_id", &self.event_id)
3027    }
3028
3029    /// 获取事件列表端点
3030    pub fn list(&self) -> String {
3031        EndpointBuilder::replace_param(
3032            Endpoints::CALENDAR_EVENT_LIST,
3033            "calendar_id",
3034            &self.calendar_id,
3035        )
3036    }
3037}
3038
3039/// 即时消息端点构建器
3040pub struct ImMessageEndpointBuilder {
3041    message_id: String,
3042}
3043
3044impl ImMessageEndpointBuilder {
3045    /// 获取消息端点
3046    pub fn get(&self) -> String {
3047        EndpointBuilder::replace_param(Endpoints::IM_V1_MESSAGE_GET, "message_id", &self.message_id)
3048    }
3049
3050    /// 更新消息端点
3051    pub fn patch(&self) -> String {
3052        EndpointBuilder::replace_param(
3053            Endpoints::IM_V1_MESSAGE_PATCH,
3054            "message_id",
3055            &self.message_id,
3056        )
3057    }
3058
3059    /// 删除消息端点
3060    pub fn delete(&self) -> String {
3061        EndpointBuilder::replace_param(
3062            Endpoints::IM_V1_MESSAGE_DELETE,
3063            "message_id",
3064            &self.message_id,
3065        )
3066    }
3067}
3068
3069// VC相关Builder已迁移至对应的vc服务模块
3070
3071/// 工作台端点构建器
3072pub struct WorkplaceEndpointBuilder {}
3073
3074impl WorkplaceEndpointBuilder {
3075    /// 获取工作台访问数据端点
3076    pub fn access_data(&self) -> String {
3077        Endpoints::WORKPLACE_ACCESS_DATA_SEARCH.to_string()
3078    }
3079
3080    /// 获取应用推荐端点
3081    pub fn app_recommend(&self) -> String {
3082        Endpoints::WORKPLACE_APP_RECOMMEND_LIST.to_string()
3083    }
3084}
3085
3086// ==================== Public Re-exports 公共常量导出 ====================
3087// Public re-exports for backward compatibility with direct imports
3088
3089// LINGO constants
3090pub const LINGO_CLASSIFICATION_LIST: &str = Endpoints::LINGO_CLASSIFICATION_LIST;
3091pub const LINGO_DRAFT_CREATE: &str = Endpoints::LINGO_DRAFT_CREATE;
3092pub const LINGO_DRAFT_UPDATE: &str = Endpoints::LINGO_DRAFT_UPDATE;
3093pub const LINGO_ENTITY_CREATE: &str = Endpoints::LINGO_ENTITY_CREATE;
3094pub const LINGO_ENTITY_GET: &str = Endpoints::LINGO_ENTITY_GET;
3095pub const LINGO_ENTITY_UPDATE: &str = Endpoints::LINGO_ENTITY_UPDATE;
3096pub const LINGO_ENTITY_SEARCH: &str = Endpoints::LINGO_ENTITY_SEARCH;
3097pub const LINGO_ENTITY_MATCH: &str = Endpoints::LINGO_ENTITY_MATCH;
3098pub const LINGO_ENTITY_HIGHLIGHT: &str = Endpoints::LINGO_ENTITY_HIGHLIGHT;
3099pub const LINGO_FILE_UPLOAD: &str = Endpoints::LINGO_FILE_UPLOAD;
3100pub const LINGO_FILE_DOWNLOAD: &str = Endpoints::LINGO_FILE_DOWNLOAD;
3101pub const LINGO_REPO_LIST: &str = Endpoints::LINGO_REPO_LIST;
3102
3103// VC constants
3104// VC constants - 已迁移至 core::endpoints::vc 模块
3105
3106// TENANT constants - 已迁移至 core::endpoints::tenant 模块
3107
3108// DIRECTORY constants
3109pub const DIRECTORY_V1_DEPARTMENTS: &str = Endpoints::DIRECTORY_V1_DEPARTMENTS;
3110pub const DIRECTORY_V1_DEPARTMENT_GET: &str = Endpoints::DIRECTORY_V1_DEPARTMENT_GET;
3111pub const DIRECTORY_V1_DEPARTMENTS_SEARCH: &str = Endpoints::DIRECTORY_V1_DEPARTMENTS_SEARCH;
3112pub const DIRECTORY_V1_DEPARTMENTS_FILTER: &str = Endpoints::DIRECTORY_V1_DEPARTMENTS_FILTER;
3113pub const DIRECTORY_V1_DEPARTMENTS_MGET: &str = Endpoints::DIRECTORY_V1_DEPARTMENTS_MGET;
3114pub const DIRECTORY_V1_EMPLOYEES: &str = Endpoints::DIRECTORY_V1_EMPLOYEES;
3115pub const DIRECTORY_V1_EMPLOYEE_GET: &str = Endpoints::DIRECTORY_V1_EMPLOYEE_GET;
3116pub const DIRECTORY_V1_EMPLOYEE_TO_BE_RESIGNED: &str =
3117    Endpoints::DIRECTORY_V1_EMPLOYEE_TO_BE_RESIGNED;
3118pub const DIRECTORY_V1_EMPLOYEE_REGULAR: &str = Endpoints::DIRECTORY_V1_EMPLOYEE_REGULAR;
3119pub const DIRECTORY_V1_EMPLOYEE_RESURRECT: &str = Endpoints::DIRECTORY_V1_EMPLOYEE_RESURRECT;
3120pub const DIRECTORY_V1_EMPLOYEES_SEARCH: &str = Endpoints::DIRECTORY_V1_EMPLOYEES_SEARCH;
3121pub const DIRECTORY_V1_EMPLOYEES_FILTER: &str = Endpoints::DIRECTORY_V1_EMPLOYEES_FILTER;
3122pub const DIRECTORY_V1_EMPLOYEES_MGET: &str = Endpoints::DIRECTORY_V1_EMPLOYEES_MGET;
3123
3124// PAYROLL constants
3125pub const PAYROLL_V1_COST_ALLOCATION_PLANS: &str = Endpoints::PAYROLL_V1_COST_ALLOCATION_PLANS;
3126pub const PAYROLL_V1_ACCT_ITEMS: &str = Endpoints::PAYROLL_V1_ACCT_ITEMS;
3127pub const PAYROLL_V1_DATASOURCES: &str = Endpoints::PAYROLL_V1_DATASOURCES;
3128pub const PAYROLL_V1_DATASOURCE_RECORDS_SAVE: &str = Endpoints::PAYROLL_V1_DATASOURCE_RECORDS_SAVE;
3129pub const PAYROLL_V1_DATASOURCE_RECORDS_QUERY: &str =
3130    Endpoints::PAYROLL_V1_DATASOURCE_RECORDS_QUERY;
3131pub const PAYROLL_V1_PAYMENT_DETAILS: &str = Endpoints::PAYROLL_V1_PAYMENT_DETAILS;
3132pub const PAYROLL_V1_PAYMENT_DETAILS_QUERY: &str = Endpoints::PAYROLL_V1_PAYMENT_DETAILS_QUERY;
3133pub const PAYROLL_V1_PAYMENT_ACTIVITIES: &str = Endpoints::PAYROLL_V1_PAYMENT_ACTIVITIES;
3134pub const PAYROLL_V1_PAYMENT_ACTIVITY_ARCHIVE: &str =
3135    Endpoints::PAYROLL_V1_PAYMENT_ACTIVITY_ARCHIVE;
3136pub const PAYROLL_V1_COST_ALLOCATION_REPORTS: &str = Endpoints::PAYROLL_V1_COST_ALLOCATION_REPORTS;
3137pub const PAYROLL_V1_PAYGROUPS: &str = Endpoints::PAYROLL_V1_PAYGROUPS;
3138
3139// SEARCH constants
3140pub const SEARCH_V1_USER: &str = Endpoints::SEARCH_V1_USER;
3141pub const SEARCH_V2_DATA_ITEM_CREATE: &str = Endpoints::SEARCH_V2_DATA_ITEM_CREATE;
3142pub const SEARCH_V2_DATA_ITEM_BATCH_CREATE: &str = Endpoints::SEARCH_V2_DATA_ITEM_BATCH_CREATE;
3143pub const SEARCH_V2_DATA_ITEM_OPERATION: &str = Endpoints::SEARCH_V2_DATA_ITEM_OPERATION;
3144pub const SEARCH_V2_MESSAGE: &str = Endpoints::SEARCH_V2_MESSAGE;
3145pub const SEARCH_V2_APP: &str = Endpoints::SEARCH_V2_APP;
3146pub const SEARCH_V2_DATA_SOURCES: &str = Endpoints::SEARCH_V2_DATA_SOURCES;
3147pub const SEARCH_V2_DATA_SOURCE_OPERATION: &str = Endpoints::SEARCH_V2_DATA_SOURCE_OPERATION;
3148pub const SEARCH_V2_SCHEMA_CREATE: &str = Endpoints::SEARCH_V2_SCHEMA_CREATE;
3149pub const SEARCH_V2_SCHEMA_OPERATION: &str = Endpoints::SEARCH_V2_SCHEMA_OPERATION;
3150
3151// OKR constants
3152pub const OKR_V1_REVIEWS_QUERY: &str = Endpoints::OKR_V1_REVIEWS_QUERY;
3153pub const OKR_V1_OKRS: &str = Endpoints::OKR_V1_OKRS;
3154pub const OKR_V1_OKRS_BATCH_GET: &str = Endpoints::OKR_V1_OKRS_BATCH_GET;
3155pub const OKR_V1_PERIOD_RULES: &str = Endpoints::OKR_V1_PERIOD_RULES;
3156pub const OKR_V1_PERIODS: &str = Endpoints::OKR_V1_PERIODS;
3157pub const OKR_V1_PERIOD_GET: &str = Endpoints::OKR_V1_PERIOD_GET;
3158pub const OKR_V1_PROGRESS_RECORDS: &str = Endpoints::OKR_V1_PROGRESS_RECORDS;
3159pub const OKR_V1_PROGRESS_RECORD_OPERATION: &str = Endpoints::OKR_V1_PROGRESS_RECORD_OPERATION;
3160pub const OKR_V1_PROGRESS_RECORDS_UPLOAD: &str = Endpoints::OKR_V1_PROGRESS_RECORDS_UPLOAD;
3161
3162// Trust Party constants
3163pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS: &str =
3164    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS;
3165pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_VISIBLE: &str =
3166    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_VISIBLE;
3167pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_GET: &str =
3168    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_GET;
3169pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_USER_GET: &str =
3170    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_USER_GET;
3171pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_DEPARTMENT_GET: &str =
3172    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_DEPARTMENT_GET;
3173pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_SHARED_MEMBER_SCOPES: &str =
3174    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATION_SHARED_MEMBER_SCOPES;
3175pub const TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS_ADMIN: &str =
3176    Endpoints::TRUST_PARTY_V1_COLLABORATION_ORGANIZATIONS_ADMIN;
3177pub const TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULES: &str =
3178    Endpoints::TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULES;
3179pub const TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULE_OPERATION: &str =
3180    Endpoints::TRUST_PARTY_V1_SEARCHABLE_VISIBLE_RULE_OPERATION;
3181
3182// CARDKIT constants
3183pub const CARDKIT_V1_CARDS: &str = Endpoints::CARDKIT_V1_CARDS;
3184pub const CARDKIT_V1_CARD_ELEMENTS: &str = Endpoints::CARDKIT_V1_CARD_ELEMENTS;
3185pub const CARDKIT_V1_CARD_SETTINGS: &str = Endpoints::CARDKIT_V1_CARD_SETTINGS;
3186pub const CARDKIT_V1_CARD_UPDATE: &str = Endpoints::CARDKIT_V1_CARD_UPDATE;
3187pub const CARDKIT_V1_CARD_BATCH_UPDATE: &str = Endpoints::CARDKIT_V1_CARD_BATCH_UPDATE;
3188
3189// AILY constants
3190pub const AILY_V1_SESSIONS: &str = Endpoints::AILY_V1_SESSIONS;
3191pub const AILY_V1_SESSION_OPERATION: &str = Endpoints::AILY_V1_SESSION_OPERATION;
3192pub const AILY_V1_RUNS: &str = Endpoints::AILY_V1_RUNS;
3193pub const AILY_V1_RUN_GET: &str = Endpoints::AILY_V1_RUN_GET;
3194pub const AILY_V1_RUN_CANCEL: &str = Endpoints::AILY_V1_RUN_CANCEL;
3195pub const AILY_V1_DATA_KNOWLEDGE_ASK: &str = Endpoints::AILY_V1_DATA_KNOWLEDGE_ASK;
3196pub const AILY_V1_DATA_KNOWLEDGE_UPLOAD_FILE: &str = Endpoints::AILY_V1_DATA_KNOWLEDGE_UPLOAD_FILE;
3197pub const AILY_V1_DATA_KNOWLEDGE: &str = Endpoints::AILY_V1_DATA_KNOWLEDGE;
3198pub const AILY_V1_DATA_KNOWLEDGE_OPERATION: &str = Endpoints::AILY_V1_DATA_KNOWLEDGE_OPERATION;
3199pub const AILY_V1_DATA_KNOWLEDGE_CATEGORIES: &str = Endpoints::AILY_V1_DATA_KNOWLEDGE_CATEGORIES;
3200pub const AILY_V1_MESSAGES: &str = Endpoints::AILY_V1_MESSAGES;
3201pub const AILY_V1_MESSAGE_GET: &str = Endpoints::AILY_V1_MESSAGE_GET;
3202pub const AILY_V1_SKILL_START: &str = Endpoints::AILY_V1_SKILL_START;
3203pub const AILY_V1_SKILL_GET: &str = Endpoints::AILY_V1_SKILL_GET;
3204pub const AILY_V1_SKILLS: &str = Endpoints::AILY_V1_SKILLS;
3205
3206// ACS constants
3207pub const ACS_V1_DEVICES: &str = Endpoints::ACS_V1_DEVICES;
3208pub const ACS_V1_VISITORS: &str = Endpoints::ACS_V1_VISITORS;
3209pub const ACS_V1_VISITOR_GET: &str = Endpoints::ACS_V1_VISITOR_GET;
3210pub const ACS_V1_ACCESS_RECORDS: &str = Endpoints::ACS_V1_ACCESS_RECORDS;
3211pub const ACS_V1_ACCESS_RECORD_FACE_IMAGE: &str = Endpoints::ACS_V1_ACCESS_RECORD_FACE_IMAGE;
3212pub const ACS_V1_RULE_EXTERNAL: &str = Endpoints::ACS_V1_RULE_EXTERNAL;
3213pub const ACS_V1_RULE_EXTERNAL_OPERATION: &str = Endpoints::ACS_V1_RULE_EXTERNAL_OPERATION;
3214pub const ACS_V1_RULE_EXTERNAL_DEVICE_BIND: &str = Endpoints::ACS_V1_RULE_EXTERNAL_DEVICE_BIND;
3215pub const ACS_V1_USER_OPERATION: &str = Endpoints::ACS_V1_USER_OPERATION;
3216pub const ACS_V1_USERS: &str = Endpoints::ACS_V1_USERS;
3217pub const ACS_V1_USER_FACE_IMAGE: &str = Endpoints::ACS_V1_USER_FACE_IMAGE;
3218
3219// Personal Settings constants
3220pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUSES: &str =
3221    Endpoints::PERSONAL_SETTINGS_V1_SYSTEM_STATUSES;
3222pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_OPERATION: &str =
3223    Endpoints::PERSONAL_SETTINGS_V1_SYSTEM_STATUS_OPERATION;
3224pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_OPEN: &str =
3225    Endpoints::PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_OPEN;
3226pub const PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_CLOSE: &str =
3227    Endpoints::PERSONAL_SETTINGS_V1_SYSTEM_STATUS_BATCH_CLOSE;
3228
3229// AI Services constants
3230pub const SPEECH_TO_TEXT_V1_FILE_RECOGNIZE: &str = Endpoints::SPEECH_TO_TEXT_V1_FILE_RECOGNIZE;
3231pub const SPEECH_TO_TEXT_V1_STREAM_RECOGNIZE: &str = Endpoints::SPEECH_TO_TEXT_V1_STREAM_RECOGNIZE;
3232pub const OPTICAL_CHAR_RECOGNITION_V1_BASIC_RECOGNIZE: &str =
3233    Endpoints::OPTICAL_CHAR_RECOGNITION_V1_BASIC_RECOGNIZE;
3234pub const TRANSLATION_V1_TEXT_DETECT: &str = Endpoints::TRANSLATION_V1_TEXT_DETECT;
3235pub const TRANSLATION_V1_TEXT_TRANSLATE: &str = Endpoints::TRANSLATION_V1_TEXT_TRANSLATE;
3236
3237// E-Learning constants
3238pub const ELEARNING_V2_COURSE_REGISTRATIONS: &str = Endpoints::ELEARNING_V2_COURSE_REGISTRATIONS;
3239pub const ELEARNING_V2_COURSE_REGISTRATION_OPERATION: &str =
3240    Endpoints::ELEARNING_V2_COURSE_REGISTRATION_OPERATION;
3241pub const ELEARNING_V2_COURSE_REGISTRATIONS_STATISTICS: &str =
3242    Endpoints::ELEARNING_V2_COURSE_REGISTRATIONS_STATISTICS;
3243
3244// Tenant Tag constants - 已迁移至 core::endpoints::tenant_tag 模块
3245
3246// Performance constants
3247pub const PERFORMANCE_V1_REVIEW_DATA_QUERY: &str = Endpoints::PERFORMANCE_V1_REVIEW_DATA_QUERY;
3248pub const PERFORMANCE_V1_REVIEW_DATA_DETAILS_QUERY: &str =
3249    Endpoints::PERFORMANCE_V1_REVIEW_DATA_DETAILS_QUERY;
3250pub const PERFORMANCE_V1_STAGE_TASK_FIND_BY_USER_LIST: &str =
3251    Endpoints::PERFORMANCE_V1_STAGE_TASK_FIND_BY_USER_LIST;
3252pub const PERFORMANCE_V1_STAGE_TASK_FIND_BY_PAGE: &str =
3253    Endpoints::PERFORMANCE_V1_STAGE_TASK_FIND_BY_PAGE;
3254pub const PERFORMANCE_V1_METRIC_DETAIL_QUERY: &str = Endpoints::PERFORMANCE_V1_METRIC_DETAIL_QUERY;
3255pub const PERFORMANCE_V1_METRIC_DETAIL_IMPORT: &str =
3256    Endpoints::PERFORMANCE_V1_METRIC_DETAIL_IMPORT;
3257
3258// Human Authentication constants
3259pub const HUMAN_AUTHENTICATION_V1_IDENTITIES: &str = Endpoints::HUMAN_AUTHENTICATION_V1_IDENTITIES;
3260pub const HUMAN_AUTHENTICATION_V1_FACE_IMAGES: &str =
3261    Endpoints::HUMAN_AUTHENTICATION_V1_FACE_IMAGES;
3262pub const HUMAN_AUTHENTICATION_V1_FACE_IMAGES_CROP: &str =
3263    Endpoints::HUMAN_AUTHENTICATION_V1_FACE_IMAGES_CROP;
3264pub const HUMAN_AUTHENTICATION_V1_IDENTITY_RESULT: &str =
3265    Endpoints::HUMAN_AUTHENTICATION_V1_IDENTITY_RESULT;
3266
3267// MDM constants
3268pub const MDM_V1_COUNTRY_REGIONS_BATCH_GET: &str = Endpoints::MDM_V1_COUNTRY_REGIONS_BATCH_GET;
3269pub const MDM_V1_COUNTRY_REGIONS: &str = Endpoints::MDM_V1_COUNTRY_REGIONS;
3270pub const MDM_V1_USER_AUTH_DATA_RELATIONS_BIND: &str =
3271    Endpoints::MDM_V1_USER_AUTH_DATA_RELATIONS_BIND;
3272pub const MDM_V1_USER_AUTH_DATA_RELATIONS_UNBIND: &str =
3273    Endpoints::MDM_V1_USER_AUTH_DATA_RELATIONS_UNBIND;
3274
3275// Security and Compliance constants
3276pub const SECURITY_AND_COMPLIANCE_V1_AUDIT_DATAS: &str =
3277    Endpoints::SECURITY_AND_COMPLIANCE_V1_AUDIT_DATAS;
3278pub const SECURITY_AND_COMPLIANCE_V1_OPENAPI_LOGS_LIST_DATA: &str =
3279    Endpoints::SECURITY_AND_COMPLIANCE_V1_OPENAPI_LOGS_LIST_DATA;
3280
3281// Report constants
3282pub const REPORT_V1_TASKS_QUERY: &str = Endpoints::REPORT_V1_TASKS_QUERY;
3283pub const REPORT_V1_RULES_QUERY: &str = Endpoints::REPORT_V1_RULES_QUERY;
3284pub const REPORT_V1_RULE_VIEWS_OPERATION: &str = Endpoints::REPORT_V1_RULE_VIEWS_OPERATION;
3285
3286// Authentication constants
3287pub const AUTHEN_V1_USER_INFO: &str = Endpoints::AUTHEN_V1_USER_INFO;
3288
3289// Calendar constants (补充)
3290pub const CALENDAR_V4_CALENDARS: &str = Endpoints::CALENDAR_V4_CALENDARS;
3291pub const CALENDAR_V4_CALENDAR_OPERATION: &str = Endpoints::CALENDAR_V4_CALENDAR_OPERATION;
3292
3293#[cfg(test)]
3294mod tests {
3295    use super::*;
3296
3297    #[test]
3298    fn test_endpoint_builder() {
3299        let result = EndpointBuilder::replace_param("/api/users/{user_id}", "user_id", "123");
3300        assert_eq!(result, "/api/users/123");
3301    }
3302
3303    #[test]
3304    fn test_multiple_params() {
3305        let mut params = std::collections::HashMap::new();
3306        params.insert("calendar_id".to_string(), "cal_123".to_string());
3307        params.insert("event_id".to_string(), "event_456".to_string());
3308
3309        let result = EndpointBuilder::replace_params(
3310            "/open-apis/calendar/v4/calendars/{calendar_id}/events/{event_id}",
3311            &params,
3312        );
3313        assert_eq!(
3314            result,
3315            "/open-apis/calendar/v4/calendars/cal_123/events/event_456"
3316        );
3317    }
3318
3319    // VC room endpoints测试已迁移至对应的vc服务模块
3320
3321    #[test]
3322    fn test_calendar_endpoints_builder() {
3323        let calendar_endpoints = EndpointBuilder::calendar("calendar_456");
3324        assert_eq!(
3325            calendar_endpoints.get(),
3326            "/open-apis/calendar/v4/calendars/calendar_456"
3327        );
3328        assert_eq!(
3329            calendar_endpoints.patch(),
3330            "/open-apis/calendar/v4/calendars/calendar_456"
3331        );
3332        assert_eq!(
3333            calendar_endpoints.delete(),
3334            "/open-apis/calendar/v4/calendars/calendar_456"
3335        );
3336        assert_eq!(
3337            calendar_endpoints.set_primary(),
3338            "/open-apis/calendar/v4/calendars/calendar_456/primary"
3339        );
3340        assert_eq!(
3341            calendar_endpoints.search(),
3342            "/open-apis/calendar/v4/calendars/calendar_456/search"
3343        );
3344    }
3345
3346    #[test]
3347    fn test_calendar_event_endpoints_builder() {
3348        let event_endpoints = EndpointBuilder::calendar_event("calendar_456", "event_789");
3349        assert_eq!(
3350            event_endpoints.create(),
3351            "/open-apis/calendar/v4/calendars/calendar_456/events"
3352        );
3353        assert_eq!(
3354            event_endpoints.get(),
3355            "/open-apis/calendar/v4/calendars/calendar_456/events/event_789"
3356        );
3357        assert_eq!(
3358            event_endpoints.patch(),
3359            "/open-apis/calendar/v4/calendars/calendar_456/events/event_789"
3360        );
3361        assert_eq!(
3362            event_endpoints.delete(),
3363            "/open-apis/calendar/v4/calendars/calendar_456/events/event_789"
3364        );
3365        assert_eq!(
3366            event_endpoints.reply(),
3367            "/open-apis/calendar/v4/calendars/calendar_456/events/event_789/reply"
3368        );
3369        assert_eq!(
3370            event_endpoints.search(),
3371            "/open-apis/calendar/v4/calendars/calendar_456/events/event_789/search"
3372        );
3373        assert_eq!(
3374            event_endpoints.list(),
3375            "/open-apis/calendar/v4/calendars/calendar_456/events"
3376        );
3377    }
3378
3379    #[test]
3380    fn test_im_message_endpoints_builder() {
3381        let message_endpoints = EndpointBuilder::im_message("message_123");
3382        assert_eq!(
3383            message_endpoints.get(),
3384            "/open-apis/im/v1/messages/message_123"
3385        );
3386        assert_eq!(
3387            message_endpoints.patch(),
3388            "/open-apis/im/v1/messages/message_123"
3389        );
3390        assert_eq!(
3391            message_endpoints.delete(),
3392            "/open-apis/im/v1/messages/message_123"
3393        );
3394    }
3395
3396    #[test]
3397    fn test_workplace_endpoints() {
3398        let workplace_endpoints = EndpointBuilder::workplace();
3399        assert_eq!(
3400            workplace_endpoints.access_data(),
3401            "/open-apis/workplace/v1/workplace_access_data/search"
3402        );
3403        assert_eq!(
3404            workplace_endpoints.app_recommend(),
3405            "/open-apis/workplace/v1/app_recommend_rule/list"
3406        );
3407    }
3408}