From 10587675155c678b87ab72a72c3af50b59d6c990 Mon Sep 17 00:00:00 2001 From: peng Date: Tue, 4 Nov 2025 17:01:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=20-=20=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86=E3=80=81?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E7=AE=A1=E7=90=86=E4=B8=BB=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crop-x/docs/开发项目规范.md | 20 + crop-x/scripts/openapi.json | 2 +- .../central-config/user/employee/page.tsx | 6 +- .../user/role/components/RoleList.tsx | 74 +- .../user/role/components/roleApi.ts | 143 + .../(app)/central-config/user/role/page.tsx | 157 +- .../(app)/central-config/user/role/types.ts | 45 + crop-x/src/lib/api/README.md | 127 - crop-x/src/lib/api/authenticated-sdk.ts | 108 - crop-x/src/lib/api/client.gen.ts | 3 +- crop-x/src/lib/api/config.ts | 37 - crop-x/src/lib/api/sdk.gen.ts | 1199 +++-- crop-x/src/lib/api/types.gen.ts | 3933 +++++++++++++---- 13 files changed, 4426 insertions(+), 1428 deletions(-) create mode 100644 crop-x/src/app/(app)/central-config/user/role/components/roleApi.ts delete mode 100644 crop-x/src/lib/api/README.md delete mode 100644 crop-x/src/lib/api/authenticated-sdk.ts delete mode 100644 crop-x/src/lib/api/config.ts diff --git a/crop-x/docs/开发项目规范.md b/crop-x/docs/开发项目规范.md index bbf6405..e23fbd4 100644 --- a/crop-x/docs/开发项目规范.md +++ b/crop-x/docs/开发项目规范.md @@ -213,6 +213,26 @@ src/app/(app)/land-information/archive/statistics/ 通过遵循这些开发规范,我们可以确保代码的一致性、可维护性和用户体验的统一性。 --- +### 9.注意乱码原则 +生成的代码注意看看有没有乱码,必须遵守utf-8编码 +### 10.接口调用原则。 +接口必须调用 D:\code\repotest\smart-crop-ui\crop-x\src\lib\api\sdk.gen.ts 这个里面的接口 +比如 /api/v1/departments/tree 这个路径,就是要调用export const getDepartmentTreeApiV1DepartmentsDepartmentsTreeGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/departments/departments/tree', + ...options + }); +}; +实际使用的时候,要参考D:\code\repotest\smart-crop-ui\crop-x\src\app\(app)\central-config\tenant\audit-history\components\auditHistoryApi.ts 里面 +import { + getTenantAuditLogsApiV1TenantsAuditLogsGet, +} from "@/lib/api/sdk.gen"; 这个引入和用法。 ## path:land-information/archive/statistics,name:统计分析页面开发经验与问题解决 diff --git a/crop-x/scripts/openapi.json b/crop-x/scripts/openapi.json index 597442b..6be8fd2 100644 --- a/crop-x/scripts/openapi.json +++ b/crop-x/scripts/openapi.json @@ -1 +1 @@ -{"openapi":"3.1.0","info":{"title":"鸿蒙智慧农业平台","description":"鸿蒙智慧农业SaaS平台 - 多租户多子系统FastAPI应用","version":"1.0.0"},"paths":{"/api/v1/auth/register":{"post":{"tags":["认证"],"summary":"用户注册","description":"用户注册","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/register-with-company":{"post":{"tags":["认证"],"summary":"用户注册并创建企业","description":"用户注册并创建企业","operationId":"register_with_company_api_v1_auth_register_with_company_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateWithCompany"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/captcha":{"get":{"tags":["认证"],"summary":"获取验证码","description":"获取登录验证码","operationId":"get_captcha_api_v1_auth_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptchaResponse"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["认证"],"summary":"用户登录","description":"用户登录(需要验证码)","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLoginWithCaptcha"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["认证"],"summary":"刷新令牌","description":"刷新访问令牌","operationId":"refresh_token_api_v1_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["认证"],"summary":"用户登出","description":"用户登出","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Logout Api V1 Auth Logout Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/me":{"get":{"tags":["认证"],"summary":"获取当前用户信息","description":"获取当前用户信息","operationId":"get_current_user_info_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["认证"],"summary":"更新当前用户信息","description":"更新当前用户信息","operationId":"update_current_user_api_v1_auth_me_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/change-password":{"post":{"tags":["认证"],"summary":"修改密码","description":"修改密码","operationId":"change_password_api_v1_auth_change_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdatePassword"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Change Password Api V1 Auth Change Password Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/verify-token":{"post":{"tags":["认证"],"summary":"验证令牌","description":"验证用户令牌有效性","operationId":"verify_user_token_api_v1_auth_verify_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Verify User Token Api V1 Auth Verify Token Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/system/users":{"post":{"tags":["用户管理"],"summary":"创建系统级用户","description":"创建系统级用户(需要系统权限)","operationId":"create_system_user_api_v1_users_system_users_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["用户管理"],"summary":"获取系统用户列表","description":"获取系统用户列表(需要系统权限)","operationId":"list_system_users_api_v1_users_system_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词","title":"Search"},"description":"搜索关键词"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"是否活跃","title":"Is Active"},"description":"是否活跃"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"},"title":"Response List System Users Api V1 Users System Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/{user_id}":{"get":{"tags":["用户管理"],"summary":"获取系统用户信息","description":"获取系统用户信息(需要系统权限)","operationId":"get_system_user_api_v1_users_system_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["用户管理"],"summary":"更新系统用户信息","description":"更新系统用户信息(需要系统权限)","operationId":"update_system_user_api_v1_users_system_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["用户管理"],"summary":"删除系统用户","description":"删除系统用户(需要系统权限)","operationId":"delete_system_user_api_v1_users_system_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete System User Api V1 Users System Users User Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/stats/summary":{"get":{"tags":["用户管理"],"summary":"获取系统用户统计信息","description":"获取系统用户统计信息(需要系统权限)","operationId":"get_system_user_stats_api_v1_users_system_users_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get System User Stats Api V1 Users System Users Stats Summary Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/system/users/{user_id}/activate":{"post":{"tags":["用户管理"],"summary":"激活系统用户","description":"激活系统用户(需要系统权限)","operationId":"activate_system_user_api_v1_users_system_users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Activate System User Api V1 Users System Users User Id Activate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/{user_id}/deactivate":{"post":{"tags":["用户管理"],"summary":"停用系统用户","description":"停用系统用户(需要系统权限)","operationId":"deactivate_system_user_api_v1_users_system_users__user_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Deactivate System User Api V1 Users System Users User Id Deactivate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/":{"get":{"tags":["用户管理"],"summary":"获取用户列表","description":"获取用户列表(需要管理员权限)","operationId":"get_users_api_v1_users__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词","title":"Search"},"description":"搜索关键词"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"是否活跃","title":"Is Active"},"description":"是否活跃"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"},"title":"Response Get Users Api V1 Users Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["用户管理"],"summary":"创建用户","description":"创建用户(需要管理员权限)","operationId":"create_user_api_v1_users__post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}":{"get":{"tags":["用户管理"],"summary":"获取用户详情","description":"获取用户详情(需要管理员权限)","operationId":"get_user_api_v1_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["用户管理"],"summary":"更新用户","description":"更新用户(需要管理员权限)","operationId":"update_user_api_v1_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["用户管理"],"summary":"删除用户","description":"删除用户(需要管理员权限)","operationId":"delete_user_api_v1_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete User Api V1 Users User Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/activate":{"post":{"tags":["用户管理"],"summary":"激活用户","description":"激活用户(需要管理员权限)","operationId":"activate_user_api_v1_users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Activate User Api V1 Users User Id Activate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/deactivate":{"post":{"tags":["用户管理"],"summary":"停用用户","description":"停用用户(需要管理员权限)","operationId":"deactivate_user_api_v1_users__user_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Deactivate User Api V1 Users User Id Deactivate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/stats/summary":{"get":{"tags":["用户管理"],"summary":"获取用户统计信息","description":"获取用户统计信息(需要管理员权限)","operationId":"get_user_stats_api_v1_users_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get User Stats Api V1 Users Stats Summary Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/departments/options":{"get":{"tags":["用户管理"],"summary":"获取部门选择列表","description":"获取部门选择列表(用于用户管理中的部门选择,仅限 tenant scope 用户访问)","operationId":"get_department_options_api_v1_users_departments_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DepartmentResponse"},"type":"array","title":"Response Get Department Options Api V1 Users Departments Options Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/":{"post":{"tags":["租户管理"],"summary":"创建租户","description":"创建新租户","operationId":"create_tenant_api_v1_tenants__post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["租户管理"],"summary":"查询企业列表","description":"获取租户列表","operationId":"list_tenants_api_v1_tenants__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"企业名称、编码(模糊查询)","title":"Search"},"description":"企业名称、编码(模糊查询)"},{"name":"audit_status","in":"query","required":false,"schema":{"type":"string","description":"审核状态","title":"Audit Status"},"description":"审核状态"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/audit-logs":{"get":{"tags":["租户管理"],"summary":"获取租户审计日志","description":"获取租户审计日志","operationId":"get_tenant_audit_logs_api_v1_tenants_audit_logs_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"type":"string","description":"租户ID","title":"Tenant Id"},"description":"租户ID"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantAuditLogResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me":{"get":{"tags":["租户管理"],"summary":"获取当前租户信息","description":"获取当前登录租户的详细信息","operationId":"get_current_tenant_api_v1_tenants_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/submit":{"post":{"tags":["租户管理"],"summary":"提交租户审核","description":"提交租户审核","operationId":"submit_tenant_audit_api_v1_tenants_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/{tenant_id}":{"get":{"tags":["租户管理"],"summary":"获取企业详情","description":"获取租户详情","operationId":"get_tenant_api_v1_tenants__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["租户管理"],"summary":"删除租户(软删除)","description":"删除租户(软删除)","operationId":"delete_tenant_api_v1_tenants__tenant_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse_bool_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/audit":{"post":{"tags":["租户管理"],"summary":"审核租户","description":"审核租户","operationId":"audit_tenant_api_v1_tenants__tenant_id__audit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/disable":{"patch":{"tags":["租户管理"],"summary":"禁用租户","description":"禁用租户","operationId":"disable_tenant_api_v1_tenants__tenant_id__disable_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/enable":{"patch":{"tags":["租户管理"],"summary":"启用租户","description":"启用租户","operationId":"enable_tenant_api_v1_tenants__tenant_id__enable_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/anonymous/list":{"get":{"tags":["租户管理"],"summary":"匿名查询租户列表","description":"匿名查询租户列表 - 只返回已审核通过的租户ID、编码和名称","operationId":"list_anonymous_tenants_api_v1_tenants_anonymous_list_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"企业名称、编码(模糊查询)","title":"Search"},"description":"企业名称、编码(模糊查询)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantAnonymousResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/departments/":{"post":{"tags":["部门管理","部门管理"],"summary":"创建部门","description":"创建新的部门","operationId":"create_department_api_v1_departments_departments__post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["部门管理","部门管理"],"summary":"获取部门列表","description":"分页获取部门列表,支持状态过滤和模糊查询","operationId":"get_departments_api_v1_departments_departments__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":10,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","description":"排序方向","default":"desc","title":"Sort Order"},"description":"排序方向"},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"状态过滤","title":"Status Filter"},"description":"状态过滤"},{"name":"name_like","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"部门名称模糊查询","title":"Name Like"},"description":"部门名称模糊查询"},{"name":"code_like","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"部门编码模糊查询","title":"Code Like"},"description":"部门编码模糊查询"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_DepartmentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/departments/tree":{"get":{"tags":["部门管理","部门管理"],"summary":"获取部门树形结构","description":"获取部门树形结构(一级部门及其子部门)","operationId":"get_department_tree_api_v1_departments_departments_tree_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Output"},"type":"array","title":"Response Get Department Tree Api V1 Departments Departments Tree Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/departments/departments/{department_id}":{"get":{"tags":["部门管理","部门管理"],"summary":"获取部门详情","description":"根据ID获取部门详情","operationId":"get_department_api_v1_departments_departments__department_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["部门管理","部门管理"],"summary":"更新部门","description":"更新部门信息","operationId":"update_department_api_v1_departments_departments__department_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["部门管理","部门管理"],"summary":"删除部门","description":"删除部门(需要先删除所有子部门和用户关联)","operationId":"delete_department_api_v1_departments_departments__department_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/departments/{department_id}/order":{"patch":{"tags":["部门管理","部门管理"],"summary":"更新部门排序","description":"更新部门排序索引","operationId":"update_department_order_api_v1_departments_departments__department_id__order_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}},{"name":"order_index","in":"query","required":true,"schema":{"type":"integer","minimum":0,"description":"排序索引","title":"Order Index"},"description":"排序索引"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/departments/{department_id}/status":{"patch":{"tags":["部门���理","部门管理"],"summary":"更新部门状态","description":"启用或停用部门","operationId":"update_department_status_api_v1_departments_departments__department_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}},{"name":"status","in":"query","required":true,"schema":{"type":"string","description":"状态: active/inactive","title":"Status"},"description":"状态: active/inactive"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/departments/{department_id}/users-count":{"get":{"tags":["部门管理","部门管理"],"summary":"获取部门用户数量","description":"获取部门下的用户数量","operationId":"get_department_users_count_api_v1_departments_departments__department_id__users_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/login":{"get":{"tags":["日志管理","登录日志"],"summary":"查询登录日志","description":"查询用户登录日志记录,支持多条件检索","operationId":"get_login_logs_api_v1_logs_logs_login_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"username","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户名","title":"Username"},"description":"用户名"},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IP地址","title":"Ip Address"},"description":"IP地址"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"登录状态: success, failed, locked","title":"Status"},"description":"登录状态: success, failed, locked"},{"name":"is_suspicious","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否可疑","title":"Is Suspicious"},"description":"是否可疑"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"开始时间 (YYYY-MM-DD HH:MM:SS)","title":"Start Time"},"description":"开始时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"结束时间 (YYYY-MM-DD HH:MM:SS)","title":"End Time"},"description":"结束时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"跳过记录数","default":0,"title":"Skip"},"description":"跳过记录数"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"限制记录数","default":100,"title":"Limit"},"description":"限制记录数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/login/{log_id}":{"get":{"tags":["日志管理","登录日志"],"summary":"获取登录日志详情","description":"根据ID获取登录日志的详细信息","operationId":"get_login_log_api_v1_logs_logs_login__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"string","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginLog"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/operation":{"get":{"tags":["日志管理","操作日志"],"summary":"查询操作日志","description":"查询用户操作日志记录,支持多条件检索","operationId":"get_operation_logs_api_v1_logs_logs_operation_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"username","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户名","title":"Username"},"description":"用户名"},{"name":"operation_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作类型: create, read, update, delete, export, import, config, auth","title":"Operation Type"},"description":"操作类型: create, read, update, delete, export, import, config, auth"},{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作模块","title":"Module"},"description":"操作模块"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作动作","title":"Action"},"description":"操作动作"},{"name":"response_status","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"响应状态码","title":"Response Status"},"description":"响应状态码"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"开始时间 (YYYY-MM-DD HH:MM:SS)","title":"Start Time"},"description":"开始时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"结束时间 (YYYY-MM-DD HH:MM:SS)","title":"End Time"},"description":"结束时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"跳过记录数","default":0,"title":"Skip"},"description":"跳过记录数"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"限制记录数","default":100,"title":"Limit"},"description":"限制记录数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/operation/{log_id}":{"get":{"tags":["日志管理","操作日志"],"summary":"获取操作日志详情","description":"根据ID获取操作日志的详细信息","operationId":"get_operation_log_api_v1_logs_logs_operation__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"string","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationLog"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/network":{"get":{"tags":["日志管理","网络日志"],"summary":"查询网络日志","description":"查询网络请求日志记录,支持多条件检索","operationId":"get_network_logs_api_v1_logs_logs_network_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"request_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"请求方法: GET, POST, PUT, DELETE, PATCH","title":"Request Method"},"description":"请求方法: GET, POST, PUT, DELETE, PATCH"},{"name":"request_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"请求路径","title":"Request Path"},"description":"请求路径"},{"name":"client_ip","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"客户端IP","title":"Client Ip"},"description":"客户端IP"},{"name":"response_status","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"响应状态码","title":"Response Status"},"description":"响应状态码"},{"name":"is_error","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否错误","title":"Is Error"},"description":"是否错误"},{"name":"min_processing_time","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"最小处理时间(秒)","title":"Min Processing Time"},"description":"最小处理时间(秒)"},{"name":"max_processing_time","in":"query","required":false,"schema":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}],"description":"最大处理时间(秒)","title":"Max Processing Time"},"description":"最大处理时间(秒)"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"开始时间 (YYYY-MM-DD HH:MM:SS)","title":"Start Time"},"description":"开始时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"结束时间 (YYYY-MM-DD HH:MM:SS)","title":"End Time"},"description":"结束时间 (YYYY-MM-DD HH:MM:SS)"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"跳过记录数","default":0,"title":"Skip"},"description":"跳过记录数"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"限制记录数","default":100,"title":"Limit"},"description":"限制记录数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/network/{log_id}":{"get":{"tags":["日志管理","网络日志"],"summary":"获取网络日志详情","description":"根据ID获取网络日志的详细信息","operationId":"get_network_log_api_v1_logs_logs_network__log_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_id","in":"path","required":true,"schema":{"type":"string","title":"Log Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkLog"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/logs/network/stats/performance":{"get":{"tags":["日志管理","网络日志"],"summary":"获取性能统计","description":"获取系统性能统计信息","operationId":"get_performance_stats_api_v1_logs_logs_network_stats_performance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceStats"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/messages/send":{"post":{"tags":["消息系统","消息发送"],"summary":"发送消息","description":"发送消息\n\n- **message_type**: 消息类型 (email/sms/inbox/push)\n- **recipients**: 接收者列表\n- **subject**: 消息主题(可选)\n- **content**: 消息内容\n- **template_id**: 模板ID(可选)\n- **variables**: 模板变量(可选)\n- **priority**: 消息优先级(low/normal/high/urgent)\n- **scheduled_at**: 计划发送时间(可选)","operationId":"send_message_api_v1_messages_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/messages/schedule":{"post":{"tags":["消息系统","消息发送"],"summary":"发送定时消息","description":"发送定时消息\n\n与实时发送相同,但必须指定 scheduled_at 参数","operationId":"schedule_message_api_v1_messages_schedule_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/messages/{message_id}/cancel":{"delete":{"tags":["消息系统","消息发送"],"summary":"取消定时消息","description":"取消定时消息\n\n- **message_id**: 消息ID","operationId":"cancel_scheduled_message_api_v1_messages__message_id__cancel_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/{message_id}/retry":{"post":{"tags":["消息系统","消息发送"],"summary":"重试失败的消息","description":"重试失败的消息\n\n- **message_id**: 消息ID","operationId":"retry_failed_message_api_v1_messages__message_id__retry_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates/message-templates":{"post":{"tags":["消息系统","消息模板"],"summary":"创建消息模板","description":"创建消息模板\n\n- **name**: 模板名称\n- **description**: 模板描述(可选)\n- **message_type**: 消息类型\n- **subject**: 消息主题(可选)\n- **content**: 模板内容\n- **template_type**: 模板类型(system/custom)","operationId":"create_template_api_v1_messages_templates_message_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["消息系统","消息模板"],"summary":"获取模板列表","description":"获取消息模板列表\n\n- **message_type**: 按消息类型过滤\n- **template_type**: 按模板类型过滤\n- **is_active**: 按启用状态过滤\n- **skip**: 跳过数量\n- **limit**: 限制数量","operationId":"list_templates_api_v1_messages_templates_message_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageType"},{"type":"null"}],"description":"消息类型","title":"Message Type"},"description":"消息类型"},{"name":"template_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TemplateType"},{"type":"null"}],"description":"模板类型","title":"Template Type"},"description":"模板类型"},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否启用","title":"Is Active"},"description":"是否启用"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"跳过数量","default":0,"title":"Skip"},"description":"跳过数量"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"限制数量","default":100,"title":"Limit"},"description":"限制数量"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageTemplateResponse"},"title":"Response List Templates Api V1 Messages Templates Message Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates/message-templates/{template_id}":{"get":{"tags":["消息系统","消息模板"],"summary":"获取模板详情","description":"获取模板详情\n\n- **template_id**: 模板ID","operationId":"get_template_api_v1_messages_templates_message_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["消息系统","消息模板"],"summary":"更新模板","description":"更新模板\n\n- **template_id**: 模板ID\n- **name**: 模板名称(可选)\n- **description**: 模板描述(可选)\n- **subject**: 消息主题(可选)\n- **content**: 模板内容(可选)\n- **is_active**: 是否启用(可选)","operationId":"update_template_api_v1_messages_templates_message_templates__template_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["消息系统","消息模板"],"summary":"删除模板","description":"删除模板\n\n- **template_id**: 模板ID","operationId":"delete_template_api_v1_messages_templates_message_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates/message-templates/{template_id}/test":{"post":{"tags":["消息系统","消息模板"],"summary":"测试模板渲染","description":"测试模板渲染\n\n- **template_id**: 模板ID\n- **test_variables**: 测试变量","operationId":"test_template_api_v1_messages_templates_message_templates__template_id__test_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Test Variables"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息日志列表","description":"获取消息日志列表\n\n- **message_type**: 按消息类型过滤\n- **status**: 按发送状态过滤\n- **recipient**: 按接收者过滤\n- **start_date**: 开始时间\n- **end_date**: 结束时间\n- **skip**: 跳过数量\n- **limit**: 限制数量","operationId":"list_message_logs_api_v1_messages_logs_message_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageType"},{"type":"null"}],"description":"消息类型","title":"Message Type"},"description":"消息类型"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageStatus"},{"type":"null"}],"description":"发送状态","title":"Status"},"description":"发送状态"},{"name":"recipient","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"接收者","title":"Recipient"},"description":"接收者"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Date"},"description":"开始时间"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Date"},"description":"结束时间"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"跳过数量","default":0,"title":"Skip"},"description":"跳过数量"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"限制数量","default":100,"title":"Limit"},"description":"限制数量"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageLogResponse"},"title":"Response List Message Logs Api V1 Messages Logs Message Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息详情","description":"获取消息详情\n\n- **message_id**: 消息ID","operationId":"get_message_log_api_v1_messages_logs_message_logs__message_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageLogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}/receipts":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息接收记录","description":"获取消息接收记录\n\n- **message_id**: 消息ID","operationId":"get_message_receipts_api_v1_messages_logs_message_logs__message_id__receipts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageReceiptResponse"},"title":"Response Get Message Receipts Api V1 Messages Logs Message Logs Message Id Receipts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}/read":{"post":{"tags":["消息系统","消息日志"],"summary":"标记消息为已读","description":"标记消息为已读\n\n- **message_id**: 消息ID\n- **recipient**: 接收者","operationId":"mark_message_as_read_api_v1_messages_logs_message_logs__message_id__read_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}},{"name":"recipient","in":"query","required":true,"schema":{"type":"string","description":"接收者","title":"Recipient"},"description":"接收者"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/statistics/overview":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息统计概览","description":"获取消息统计概览\n\n- **days**: 统计天数","operationId":"get_message_statistics_api_v1_messages_logs_message_logs_statistics_overview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"统计天数","default":30,"title":"Days"},"description":"统计天数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/statistics/recipient/{recipient}":{"get":{"tags":["消息系统","消息日志"],"summary":"获取接收者统计","description":"获取接收者统计\n\n- **recipient**: 接收者\n- **days**: 统计天数","operationId":"get_recipient_statistics_api_v1_messages_logs_message_logs_statistics_recipient__recipient__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recipient","in":"path","required":true,"schema":{"type":"string","title":"Recipient"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"统计天数","default":30,"title":"Days"},"description":"统计天数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/unread/count":{"get":{"tags":["消息系统","消息日志"],"summary":"获取未读消息数量","description":"获取未读消息数量\n\n- **recipient**: 接收者","operationId":"get_unread_count_api_v1_messages_logs_message_logs_unread_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recipient","in":"query","required":true,"schema":{"type":"string","description":"接收者","title":"Recipient"},"description":"接收者"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health/":{"get":{"tags":["系统管理"],"summary":"基础健康检查","description":"基础健康检查","operationId":"health_check_api_v1_health__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Check Api V1 Health Get"}}}}}}},"/api/v1/health/detailed":{"get":{"tags":["系统管理"],"summary":"详细健康检查","description":"详细健康检查,包含数据库连接状态","operationId":"detailed_health_check_api_v1_health_detailed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Detailed Health Check Api V1 Health Detailed Get"}}}}}}},"/api/v1/system/info":{"get":{"tags":["系统管理"],"summary":"获取系统信息","description":"获取系统基本信息","operationId":"get_system_info_api_v1_system_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Info Api V1 System Info Get"}}}}}}},"/api/v1/system/stats":{"get":{"tags":["系统管理"],"summary":"获取系统统计信息","description":"获取系统统计信息","operationId":"get_system_stats_api_v1_system_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Stats Api V1 System Stats Get"}}}}}}},"/api/v1/system/config":{"get":{"tags":["系统管理"],"summary":"获取系统配置","description":"获取公开的系统配置","operationId":"get_system_config_api_v1_system_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Config Api V1 System Config Get"}}}}}}},"/api/v1/system/metrics":{"get":{"tags":["系统管理"],"summary":"获取系统性能指标","description":"获取系统性能指标\n\n需要超级管理员权限访问\n\n- **sanitize**: 是否对敏感数据进行脱敏处理(默认:True)","operationId":"get_system_metrics_api_v1_system_metrics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sanitize","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Sanitize"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetricsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/metrics/summary":{"get":{"tags":["系统管理"],"summary":"获取性能指标摘要","description":"获取系统性能指标摘要\n\n需要超级管理员权限访问","operationId":"get_performance_summary_api_v1_system_metrics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceMetricsSummary"}}}}},"security":[{"HTTPBearer":[]}]}},"/health":{"get":{"summary":"Health Check","description":"健康检查","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApplicationMetrics":{"properties":{"request_count":{"type":"integer","minimum":0.0,"title":"Request Count","description":"请求总数"},"error_count":{"type":"integer","minimum":0.0,"title":"Error Count","description":"错误数量"},"avg_response_time":{"type":"number","minimum":0.0,"title":"Avg Response Time","description":"平均响应时间(毫秒)"},"active_connections":{"type":"integer","minimum":0.0,"title":"Active Connections","description":"活跃连接数"},"database_connections":{"additionalProperties":{"type":"integer"},"type":"object","title":"Database Connections","description":"数据库连接池状态"}},"type":"object","required":["request_count","error_count","avg_response_time","active_connections"],"title":"ApplicationMetrics","description":"应用性能指标模型"},"AuditStatus":{"type":"string","enum":["草稿","待审核","已通过","已拒绝"],"title":"AuditStatus","description":"审核状态枚举"},"BaseResponse_bool_":{"properties":{"success":{"type":"boolean","title":"Success","description":"请求是否成功","default":true},"code":{"type":"string","title":"Code","description":"业务状态码","default":"SUCCESS"},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Data","description":"响应数据"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"请求追踪ID"}},"type":"object","title":"BaseResponse[bool]"},"CPUInfo":{"properties":{"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"CPU 使用率百分比"},"core_count":{"type":"integer","minimum":1.0,"title":"Core Count","description":"CPU 核心数量"},"load_avg_1min":{"type":"number","minimum":0.0,"title":"Load Avg 1Min","description":"1分钟负载平均值"},"load_avg_5min":{"type":"number","minimum":0.0,"title":"Load Avg 5Min","description":"5分钟负载平均值"},"load_avg_15min":{"type":"number","minimum":0.0,"title":"Load Avg 15Min","description":"15分钟负载平均值"}},"type":"object","required":["usage_percent","core_count","load_avg_1min","load_avg_5min","load_avg_15min"],"title":"CPUInfo","description":"CPU 信息模型"},"CaptchaResponse":{"properties":{"captcha_id":{"type":"string","title":"Captcha Id","description":"验证码ID"},"image":{"type":"string","title":"Image","description":"验证码图片(base64)"}},"type":"object","required":["captcha_id","image"],"title":"CaptchaResponse","description":"验证码响应模型"},"CompanyScale":{"type":"string","enum":["小型(50人以下)","中型(50-300人)","大型(300人以上)"],"title":"CompanyScale","description":"公司规模枚举"},"DepartmentCreate":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","minimum":0.0,"title":"Order Index","description":"排序索引","default":0},"status":{"type":"string","title":"Status","description":"部门状态:active-启用, inactive-停用","default":"active"}},"type":"object","required":["code","name"],"title":"DepartmentCreate","description":"创建部门模式"},"DepartmentResponse":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentResponse","description":"部门响应模式"},"DepartmentTreeResponse-Input":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"},"children":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Input"},"type":"array","title":"Children","description":"子部门列表"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentTreeResponse","description":"部门树形响应模式"},"DepartmentTreeResponse-Output":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"},"children":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Output"},"type":"array","title":"Children","description":"子部门列表"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentTreeResponse","description":"部门树形响应模式"},"DepartmentUpdate":{"properties":{"code":{"anyOf":[{"type":"string","maxLength":50,"minLength":1},{"type":"null"}],"title":"Code","description":"部门编码"},"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"parent_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Order Index","description":"排序索引"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"部门状态"}},"type":"object","title":"DepartmentUpdate","description":"更新部门模式"},"DiskInfo":{"properties":{"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总磁盘空间字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用磁盘空间字节数"},"free_bytes":{"type":"integer","minimum":0.0,"title":"Free Bytes","description":"可用磁盘空间字节数"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"磁盘使用率百分比"},"partitions":{"items":{"$ref":"#/components/schemas/DiskPartitionInfo"},"type":"array","title":"Partitions","description":"磁盘分区列表"}},"type":"object","required":["total_bytes","used_bytes","free_bytes","usage_percent"],"title":"DiskInfo","description":"磁盘信息模型"},"DiskPartitionInfo":{"properties":{"device":{"type":"string","title":"Device","description":"设备名称"},"mountpoint":{"type":"string","title":"Mountpoint","description":"挂载点"},"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总空间字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用空间字节数"},"free_bytes":{"type":"integer","minimum":0.0,"title":"Free Bytes","description":"可用空间字节数"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"使用率百分比"}},"type":"object","required":["device","mountpoint","total_bytes","used_bytes","free_bytes","usage_percent"],"title":"DiskPartitionInfo","description":"磁盘分区信息模型"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvoiceType":{"type":"string","enum":["普通发票","增值税专用发票","电子发票"],"title":"InvoiceType","description":"发票类型枚举"},"LogListResponse":{"properties":{"items":{"items":{},"type":"array","title":"Items","description":"日志列表"},"total":{"type":"integer","title":"Total","description":"总记录数"},"skip":{"type":"integer","title":"Skip","description":"跳过记录数","default":0},"limit":{"type":"integer","title":"Limit","description":"限制记录数","default":100}},"type":"object","required":["items","total"],"title":"LogListResponse","description":"日志列表响应模式"},"LoginLog":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"用户ID"},"username":{"type":"string","maxLength":100,"title":"Username","description":"用户名"},"status":{"$ref":"#/components/schemas/LoginStatus","description":"登录状态"},"method":{"$ref":"#/components/schemas/LoginMethod","description":"登录方式"},"ip_address":{"type":"string","maxLength":45,"title":"Ip Address","description":"IP地址"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent","description":"用户代理"},"location":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Location","description":"地理位置"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason","description":"失败原因"},"attempt_count":{"type":"integer","minimum":1.0,"title":"Attempt Count","description":"尝试次数","default":1},"is_suspicious":{"type":"boolean","title":"Is Suspicious","description":"是否可疑","default":false},"id":{"type":"string","format":"uuid","title":"Id","description":"日志ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["user_id","username","status","method","ip_address","id","created_at","updated_at"],"title":"LoginLog","description":"登录日志响应模式"},"LoginMethod":{"type":"string","enum":["password","captcha","sso"],"title":"LoginMethod","description":"登录方式枚举"},"LoginStatus":{"type":"string","enum":["success","failed","locked"],"title":"LoginStatus","description":"登录状态枚举"},"MemoryInfo":{"properties":{"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总内存字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用内存字节数"},"available_bytes":{"type":"integer","minimum":0.0,"title":"Available Bytes","description":"可用内存字节数"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"内存使用率百分比"},"swap_total_bytes":{"type":"integer","minimum":0.0,"title":"Swap Total Bytes","description":"交换空间总字节数"},"swap_used_bytes":{"type":"integer","minimum":0.0,"title":"Swap Used Bytes","description":"交换空间已用字节数"},"swap_usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Swap Usage Percent","description":"交换空间使用率百分比"}},"type":"object","required":["total_bytes","used_bytes","available_bytes","usage_percent","swap_total_bytes","swap_used_bytes","swap_usage_percent"],"title":"MemoryInfo","description":"内存信息模型"},"MessageLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"消息ID"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"消息主题"},"recipients":{"items":{"type":"string"},"type":"array","title":"Recipients","description":"接收者列表"},"status":{"type":"string","title":"Status","description":"发送状态"},"priority":{"$ref":"#/components/schemas/MessagePriority","description":"消息优先级"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At","description":"实际发送时间"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason","description":"失败原因"},"retry_count":{"type":"integer","title":"Retry Count","description":"重试次数"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["id","message_type","recipients","status","priority","retry_count","created_at"],"title":"MessageLogResponse","description":"消息日志响应"},"MessagePriority":{"type":"string","enum":["low","normal","high","urgent"],"title":"MessagePriority","description":"消息优先级枚举"},"MessageReceiptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"接收记录ID"},"message_id":{"type":"string","format":"uuid","title":"Message Id","description":"消息ID"},"recipient":{"type":"string","title":"Recipient","description":"接收者"},"is_read":{"type":"boolean","title":"Is Read","description":"是否已读"},"is_delivered":{"type":"boolean","title":"Is Delivered","description":"是否已投递"},"read_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Read At","description":"阅读时间"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At","description":"投递时间"},"external_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Status","description":"外部服务状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["id","message_id","recipient","is_read","is_delivered","created_at"],"title":"MessageReceiptResponse","description":"消息接收记录响应"},"MessageSendRequest":{"properties":{"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"recipients":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Recipients","description":"接收者列表"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","minLength":1,"title":"Content","description":"消息内容"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"模板ID"},"variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Variables","description":"模板变量"},"priority":{"$ref":"#/components/schemas/MessagePriority","description":"消息优先级","default":"normal"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"}},"type":"object","required":["message_type","recipients","content"],"title":"MessageSendRequest","description":"消息发送请求"},"MessageSendResponse":{"properties":{"message_id":{"type":"string","format":"uuid","title":"Message Id","description":"消息ID"},"status":{"type":"string","title":"Status","description":"发送状态"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["message_id","status","created_at"],"title":"MessageSendResponse","description":"消息发送响应"},"MessageStatus":{"type":"string","enum":["pending","sending","sent","delivered","failed","cancelled"],"title":"MessageStatus","description":"消息状态枚举"},"MessageTemplateCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","minLength":1,"title":"Content","description":"模板内容"},"template_type":{"$ref":"#/components/schemas/TemplateType","description":"模板类型","default":"custom"}},"type":"object","required":["name","message_type","content"],"title":"MessageTemplateCreate","description":"消息模板创建请求"},"MessageTemplateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"模板ID"},"name":{"type":"string","title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"template_type":{"$ref":"#/components/schemas/TemplateType","description":"模板类型"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","title":"Content","description":"模板内容"},"variables":{"items":{"type":"string"},"type":"array","title":"Variables","description":"模板变量列表"},"is_active":{"type":"boolean","title":"Is Active","description":"是否启用"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["id","name","message_type","template_type","content","variables","is_active","created_at","updated_at"],"title":"MessageTemplateResponse","description":"消息模板响应"},"MessageTemplateUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Content","description":"模板内容"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"是否启用"}},"type":"object","title":"MessageTemplateUpdate","description":"消息模板更新请求"},"MessageType":{"type":"string","enum":["email","sms","inbox","push"],"title":"MessageType","description":"消息类型枚举"},"NetworkInfo":{"properties":{"interfaces":{"items":{"$ref":"#/components/schemas/NetworkInterfaceInfo"},"type":"array","title":"Interfaces","description":"网络接口列表"},"connections_count":{"type":"integer","minimum":0.0,"title":"Connections Count","description":"连接数量"}},"type":"object","required":["connections_count"],"title":"NetworkInfo","description":"网络信息模型"},"NetworkInterfaceInfo":{"properties":{"name":{"type":"string","title":"Name","description":"接口名称"},"is_up":{"type":"boolean","title":"Is Up","description":"接口是否启用"},"bytes_sent":{"type":"integer","minimum":0.0,"title":"Bytes Sent","description":"发送字节数"},"bytes_recv":{"type":"integer","minimum":0.0,"title":"Bytes Recv","description":"接收字节数"},"packets_sent":{"type":"integer","minimum":0.0,"title":"Packets Sent","description":"发送包数"},"packets_recv":{"type":"integer","minimum":0.0,"title":"Packets Recv","description":"接收包数"}},"type":"object","required":["name","is_up","bytes_sent","bytes_recv","packets_sent","packets_recv"],"title":"NetworkInterfaceInfo","description":"网络接口信息模型"},"NetworkLog":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"request_method":{"type":"string","maxLength":10,"title":"Request Method","description":"请求方法"},"request_url":{"type":"string","title":"Request Url","description":"请求URL"},"request_path":{"type":"string","maxLength":500,"title":"Request Path","description":"请求路径"},"query_params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Query Params","description":"查询参数"},"client_ip":{"type":"string","maxLength":45,"title":"Client Ip","description":"客户端IP"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent","description":"用户代理"},"referer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Referer","description":"来源页面"},"response_status":{"type":"integer","maximum":599.0,"minimum":100.0,"title":"Response Status","description":"响应状态码"},"response_size":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Response Size","description":"响应大小(字节)"},"processing_time":{"type":"number","minimum":0.0,"title":"Processing Time","description":"处理时间(秒)"},"database_time":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Database Time","description":"数据库查询时间(秒)"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id","description":"用户ID"},"is_error":{"type":"boolean","title":"Is Error","description":"是否错误","default":false},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"错误信息"},"id":{"type":"string","format":"uuid","title":"Id","description":"日志ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["request_method","request_url","request_path","client_ip","response_status","processing_time","id","created_at","updated_at"],"title":"NetworkLog","description":"网络日志响应模式"},"OperationLog":{"properties":{"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"用户ID"},"username":{"type":"string","maxLength":100,"title":"Username","description":"用户名"},"operation_type":{"$ref":"#/components/schemas/OperationType","description":"操作类型"},"module":{"type":"string","maxLength":100,"title":"Module","description":"操作模块"},"action":{"type":"string","maxLength":200,"title":"Action","description":"操作动作"},"request_method":{"type":"string","maxLength":10,"title":"Request Method","description":"请求方法"},"request_url":{"type":"string","title":"Request Url","description":"请求URL"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers","description":"请求头"},"request_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Body","description":"请求体"},"request_params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Params","description":"请求参数"},"response_status":{"type":"integer","maximum":599.0,"minimum":100.0,"title":"Response Status","description":"响应状态码"},"response_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Body","description":"响应体"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"错误信息"},"processing_time":{"type":"number","minimum":0.0,"title":"Processing Time","description":"处理时间(秒)"},"id":{"type":"string","format":"uuid","title":"Id","description":"日志ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["user_id","username","operation_type","module","action","request_method","request_url","response_status","processing_time","id","created_at","updated_at"],"title":"OperationLog","description":"操作日志响应模式"},"OperationType":{"type":"string","enum":["create","read","update","delete","export","import","config","auth"],"title":"OperationType","description":"操作类型枚举"},"Page_DepartmentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DepartmentResponse"},"type":"array","title":"Data"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"size":{"type":"integer","title":"Size"}},"type":"object","required":["data","total","page","size"],"title":"Page[DepartmentResponse]"},"PagedResponse_TenantAnonymousResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantAnonymousResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantAnonymousResponse]"},"PagedResponse_TenantAuditLogResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantAuditLogResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantAuditLogResponse]"},"PagedResponse_TenantResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantResponse]"},"PerformanceMetricsSummary":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"数据收集时间戳"},"cpu_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Cpu Usage","description":"CPU 使用率"},"memory_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Memory Usage","description":"内存使用率"},"disk_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Disk Usage","description":"磁盘使用率"},"system_load":{"type":"number","minimum":0.0,"title":"System Load","description":"系统负载"},"status":{"type":"string","title":"Status","description":"系统状态"}},"type":"object","required":["timestamp","cpu_usage","memory_usage","disk_usage","system_load","status"],"title":"PerformanceMetricsSummary","description":"性能指标摘要模型"},"PerformanceStats":{"properties":{"total_requests":{"type":"integer","title":"Total Requests","description":"总请求数"},"avg_response_time":{"type":"number","title":"Avg Response Time","description":"平均响应时间"},"error_rate":{"type":"number","title":"Error Rate","description":"错误率"},"slow_requests":{"type":"integer","title":"Slow Requests","description":"慢请求数"}},"type":"object","required":["total_requests","avg_response_time","error_rate","slow_requests"],"title":"PerformanceStats","description":"性能统计响应模式"},"PythonRuntimeInfo":{"properties":{"version":{"type":"string","title":"Version","description":"Python 版本"},"implementation":{"type":"string","title":"Implementation","description":"Python 实现"},"memory_usage_bytes":{"type":"integer","minimum":0.0,"title":"Memory Usage Bytes","description":"内存使用字节数"},"gc_stats":{"additionalProperties":true,"type":"object","title":"Gc Stats","description":"垃圾回收统计"}},"type":"object","required":["version","implementation","memory_usage_bytes"],"title":"PythonRuntimeInfo","description":"Python 运行时信息模型"},"SystemMetricsResponse":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"数据收集时间戳"},"cpu":{"$ref":"#/components/schemas/CPUInfo","description":"CPU 信息"},"memory":{"$ref":"#/components/schemas/MemoryInfo","description":"内存信息"},"disk":{"$ref":"#/components/schemas/DiskInfo","description":"磁盘信息"},"network":{"$ref":"#/components/schemas/NetworkInfo","description":"网络信息"},"python_runtime":{"$ref":"#/components/schemas/PythonRuntimeInfo","description":"Python 运行时信息"},"application":{"$ref":"#/components/schemas/ApplicationMetrics","description":"应用性能指标"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"元数据"}},"type":"object","required":["timestamp","cpu","memory","disk","network","python_runtime","application"],"title":"SystemMetricsResponse","description":"系统性能指标响应模型"},"TemplateType":{"type":"string","enum":["system","custom"],"title":"TemplateType","description":"模板类型枚举"},"TenantAnonymousResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"租户ID"},"tenant_code":{"type":"string","title":"Tenant Code","description":"租户编码"},"company_name":{"type":"string","title":"Company Name","description":"企业名称"},"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"}},"additionalProperties":false,"type":"object","required":["id","tenant_code","company_name","audit_status"],"title":"TenantAnonymousResponse","description":"租户匿名查询响应模型 - 只包含ID和名称"},"TenantAuditLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"日志ID"},"action":{"type":"string","title":"Action","description":"操作类型"},"action_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action By","description":"操作人"},"action_time":{"type":"string","format":"date-time","title":"Action Time","description":"操作时间"},"snapshot_company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Name","description":"企业名称快照"},"snapshot_company_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Type","description":"企业类型快照"},"snapshot_province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Province","description":"省份快照"},"snapshot_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot City","description":"城市快照"},"snapshot_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot District","description":"区县快照"},"snapshot_detailed_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Detailed Address","description":"详细地址快照"},"snapshot_registrant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Registrant","description":"登记人快照"},"snapshot_contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Contact Phone","description":"联系电话快照"},"snapshot_bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Account","description":"银行账号快照"},"snapshot_bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Name","description":"开户行快照"},"snapshot_bank_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Full Name","description":"开户行全称快照"},"snapshot_bank_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Address","description":"开户行地址快照"},"snapshot_social_credit_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Social Credit Code","description":"社会信用代码快照"},"snapshot_legal_person_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Legal Person Name","description":"法人姓名快照"},"snapshot_audit_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Audit Status","description":"审核状态快照"},"snapshot_audit_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Audit Comment","description":"审核备注快照"},"snapshot_company_scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Scale","description":"公司规模快照"},"snapshot_registered_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Snapshot Registered Capital","description":"注册资本快照"},"change_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Summary","description":"变更摘要描述"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address","description":"操作IP地址"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent","description":"用户代理"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"请求追踪ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"additionalProperties":false,"type":"object","required":["id","action","action_time","created_at"],"title":"TenantAuditLogResponse","description":"租户审计日志响应模型"},"TenantAuditRequest":{"properties":{"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"},"audit_comment":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Audit Comment","description":"审核备注"}},"additionalProperties":false,"type":"object","required":["audit_status"],"title":"TenantAuditRequest","description":"租户审核请求模型"},"TenantCreateRequest":{"properties":{"company_name":{"type":"string","maxLength":200,"minLength":2,"title":"Company Name","description":"企业名称"},"tenant_code":{"type":"string","maxLength":200,"minLength":2,"title":"Tenant Code","description":"企业编码"},"company_type":{"$ref":"#/components/schemas/TenantType","description":"企业类型"}},"additionalProperties":false,"type":"object","required":["company_name","tenant_code","company_type"],"title":"TenantCreateRequest","description":"创建租户请求模型"},"TenantResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"租户ID"},"tenant_code":{"type":"string","title":"Tenant Code","description":"租户编码"},"is_active":{"type":"boolean","title":"Is Active","description":"是否活跃"},"company_name":{"type":"string","title":"Company Name","description":"企业名称"},"company_type":{"anyOf":[{"$ref":"#/components/schemas/TenantType"},{"type":"null"}],"description":"企业类型"},"province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Province","description":"省份"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"城市"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District","description":"区县"},"detailed_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detailed Address","description":"详细地址"},"registrant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registrant","description":"登记人"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone","description":"联系电话(已脱敏)"},"bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Account","description":"银行账号(已脱敏)"},"bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Name","description":"开户行"},"bank_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Full Name","description":"开户行全称"},"bank_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Address","description":"开户行地址"},"social_credit_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Social Credit Code","description":"社会信用代码(已脱敏)"},"legal_person_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Person Name","description":"法人姓名(已脱敏)"},"company_scale":{"anyOf":[{"$ref":"#/components/schemas/CompanyScale"},{"type":"null"}],"description":"公司规模"},"registered_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Registered Capital","description":"注册资本(万元)"},"established_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Established Date","description":"成立时间"},"invoice_type":{"anyOf":[{"$ref":"#/components/schemas/InvoiceType"},{"type":"null"}],"description":"发票类型"},"business_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Scope","description":"经营范围"},"submit_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submit Time","description":"提交时间"},"audit_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Audit Time","description":"审核时间"},"auditor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auditor","description":"审核人"},"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"},"audit_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audit Comment","description":"审核备注"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"additionalProperties":false,"type":"object","required":["id","tenant_code","is_active","company_name","audit_status","created_at","updated_at"],"title":"TenantResponse","description":"租户响应模型(已脱敏)"},"TenantType":{"type":"string","enum":["个体工商户","有限责任公司","股份有限公司","合伙企业","其他"],"title":"TenantType","description":"企业类型枚举"},"TenantUpdateRequest":{"properties":{"company_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Company Name","description":"企业名称"},"company_type":{"anyOf":[{"$ref":"#/components/schemas/TenantType"},{"type":"null"}],"description":"企业类型"},"province":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Province","description":"省份"},"city":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"City","description":"城市"},"district":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"District","description":"区县"},"detailed_address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Detailed Address","description":"详细地址"},"registrant":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Registrant","description":"登记人"},"contact_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Contact Phone","description":"联系电话"},"bank_account":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Bank Account","description":"银行账号"},"bank_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Bank Name","description":"开户行"},"bank_full_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Bank Full Name","description":"开户行全称"},"bank_address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bank Address","description":"开户行地址"},"bank_permit_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bank Permit Image","description":"开户许可证图片路径"},"social_credit_code":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Social Credit Code","description":"社会信用代码"},"business_license_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Business License Image","description":"营业执照图片路径"},"legal_person_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Legal Person Name","description":"法人姓名"},"id_card_front_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Id Card Front Image","description":"身份证正面图片"},"id_card_back_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Id Card Back Image","description":"身份证反面图片"},"company_scale":{"anyOf":[{"$ref":"#/components/schemas/CompanyScale"},{"type":"null"}],"description":"公司规模"},"registered_capital":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Registered Capital","description":"注册资本(万元)"},"established_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Established Date","description":"成立时间"},"invoice_type":{"anyOf":[{"$ref":"#/components/schemas/InvoiceType"},{"type":"null"}],"description":"发票类型"},"business_scope":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Business Scope","description":"经营范围"}},"additionalProperties":false,"type":"object","title":"TenantUpdateRequest","description":"更新租户请求模型"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token","description":"访问令牌"},"refresh_token":{"type":"string","title":"Refresh Token","description":"刷新令牌"},"token_type":{"type":"string","title":"Token Type","description":"令牌类型","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In","description":"过期时间(秒)"}},"type":"object","required":["access_token","refresh_token","expires_in"],"title":"Token","description":"令牌模型"},"User":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"id":{"type":"string","format":"uuid","title":"Id"},"tenant_id":{"type":"string","title":"Tenant Id"},"is_active":{"type":"boolean","title":"Is Active"},"is_superuser":{"type":"boolean","title":"Is Superuser"},"is_verified":{"type":"boolean","title":"Is Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"display_name":{"type":"string","title":"Display Name","description":"显示名称"},"department_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Id","description":"部门ID"},"department_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Name","description":"部门名称"}},"type":"object","required":["email","username","phone","id","tenant_id","is_active","is_superuser","is_verified","created_at","updated_at","last_login_at","avatar_url","bio","display_name"],"title":"User","description":"用户响应模型"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password","description":"密码"},"tenant_id":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"scope":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Scope","description":"用户作用域","default":"tenant"},"department_id":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"title":"Department Id","description":"部门ID"}},"type":"object","required":["email","username","phone","password"],"title":"UserCreate","description":"创建用户模型"},"UserCreateWithCompany":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password","description":"密码"},"company_name":{"type":"string","maxLength":200,"minLength":2,"title":"Company Name","description":"企业名称"},"tenant_code":{"type":"string","maxLength":200,"minLength":2,"title":"Tenant Code","description":"企业编码","default":"6be48b23-4e68-4899-8ac8-262d8d59e044"}},"type":"object","required":["email","username","phone","password","company_name"],"title":"UserCreateWithCompany","description":"创建用户并注册企业模型"},"UserLoginWithCaptcha":{"properties":{"identifier":{"type":"string","title":"Identifier","description":"用户名、邮箱或手机号"},"password":{"type":"string","title":"Password","description":"密码"},"captcha_id":{"type":"string","title":"Captcha Id","description":"验证码ID"},"captcha_text":{"type":"string","maxLength":6,"minLength":4,"title":"Captcha Text","description":"验证码文本"}},"type":"object","required":["identifier","password","captcha_id","captcha_text"],"title":"UserLoginWithCaptcha","description":"带验证码的用户登录模型"},"UserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email","description":"邮箱地址"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone","description":"手机号"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url","description":"头像URL"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio","description":"个人简介"},"department_id":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"title":"Department Id","description":"部门ID"}},"type":"object","title":"UserUpdate","description":"更新用户模型"},"UserUpdatePassword":{"properties":{"current_password":{"type":"string","title":"Current Password","description":"当前密码"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password","description":"新密码"}},"type":"object","required":["current_password","new_password"],"title":"UserUpdatePassword","description":"更新密码模型"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} \ No newline at end of file +{"openapi":"3.1.0","info":{"title":"鸿蒙智慧农业平台","description":"鸿蒙智慧农业SaaS平台 - 多租户多子系统FastAPI应用","version":"1.0.0"},"paths":{"/api/v1/auth/register":{"post":{"tags":["认证"],"summary":"用户注册","description":"用户注册","operationId":"register_api_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/register-with-company":{"post":{"tags":["认证"],"summary":"用户注册并创建企业","description":"用户注册并创建企业","operationId":"register_with_company_api_v1_auth_register_with_company_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateWithCompany"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/captcha":{"get":{"tags":["认证"],"summary":"获取验证码","description":"获取登录验证码","operationId":"get_captcha_api_v1_auth_captcha_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaptchaResponse"}}}}}}},"/api/v1/auth/login":{"post":{"tags":["认证"],"summary":"用户登录","description":"用户登录(需要验证码)","operationId":"login_api_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLoginWithCaptcha"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/refresh":{"post":{"tags":["认证"],"summary":"刷新令牌","description":"刷新访问令牌","operationId":"refresh_token_api_v1_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Token"}}}}}}},"/api/v1/auth/logout":{"post":{"tags":["认证"],"summary":"用户登出","description":"用户登出","operationId":"logout_api_v1_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Logout Api V1 Auth Logout Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/me":{"get":{"tags":["认证"],"summary":"获取当前用户信息","description":"获取当前用户信息","operationId":"get_current_user_info_api_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"security":[{"HTTPBearer":[]}]},"put":{"tags":["认证"],"summary":"更新当前用户信息","description":"更新当前用户信息","operationId":"update_current_user_api_v1_auth_me_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/change-password":{"post":{"tags":["认证"],"summary":"修改密码","description":"修改密码","operationId":"change_password_api_v1_auth_change_password_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdatePassword"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Change Password Api V1 Auth Change Password Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/auth/verify-token":{"post":{"tags":["认证"],"summary":"验证令牌","description":"验证用户令牌有效性","operationId":"verify_user_token_api_v1_auth_verify_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Verify User Token Api V1 Auth Verify Token Post"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users":{"get":{"tags":["用户管理"],"summary":"获取用户列表","description":"获取用户列表(需要管理员权限)","operationId":"get_users_api_v1_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词","title":"Search"},"description":"搜索关键词"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"是否活跃","title":"Is Active"},"description":"是否活跃"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_UserResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["用户管理"],"summary":"创建用户","description":"创建用户(需要管理员权限)","operationId":"create_user_api_v1_users_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}":{"get":{"tags":["用户管理"],"summary":"获取用户详情","description":"获取用户详情(需要管理员权限)","operationId":"get_user_api_v1_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["用户管理"],"summary":"更新用户","description":"更新用户(需要管理员权限)","operationId":"update_user_api_v1_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["用户管理"],"summary":"删除用户","description":"删除用户(需要管理员权限)","operationId":"delete_user_api_v1_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete User Api V1 Users User Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/activate":{"post":{"tags":["用户管理"],"summary":"激活用户","description":"激活用户(需要管理员权限)","operationId":"activate_user_api_v1_users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Activate User Api V1 Users User Id Activate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/{user_id}/deactivate":{"post":{"tags":["用户管理"],"summary":"停用用户","description":"停用用户(需要管理员权限)","operationId":"deactivate_user_api_v1_users__user_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Deactivate User Api V1 Users User Id Deactivate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/stats/summary":{"get":{"tags":["用户管理"],"summary":"获取用户统计信息","description":"获取用户统计信息(需要管理员权限)","operationId":"get_user_stats_api_v1_users_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get User Stats Api V1 Users Stats Summary Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/departments/options":{"get":{"tags":["用户管理"],"summary":"获取部门选择列表","description":"获取部门选择列表(用于用户管理中的部门选择,仅限 tenant scope 用户访问)","operationId":"get_department_options_api_v1_users_departments_options_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DepartmentResponse"},"type":"array","title":"Response Get Department Options Api V1 Users Departments Options Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/permissions/permissions":{"get":{"tags":["用户管理"],"summary":"获取系统权限列表","description":"获取系统权限列表(需要系统权限)","operationId":"get_system_permissions_api_v1_users_permissions_permissions_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词","title":"Search"},"description":"搜索关键词"},{"name":"group","in":"query","required":false,"schema":{"type":"string","description":"权限分组过滤","title":"Group"},"description":"权限分组过滤"},{"name":"resource","in":"query","required":false,"schema":{"type":"string","description":"资源过滤","title":"Resource"},"description":"资源过滤"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_Permission_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/permissions/roles":{"get":{"tags":["用户管理"],"summary":"获取角色列表","description":"获取角色列表(支持租户和系统角色)","operationId":"get_roles_api_v1_users_permissions_roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词","title":"Search"},"description":"搜索关键词"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_Role_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["用户管理"],"summary":"创建角色","description":"创建角色","operationId":"create_role_api_v1_users_permissions_roles_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/permissions/roles/{role_id}":{"get":{"tags":["用户管理"],"summary":"获取角色详情","description":"获取角色详情","operationId":"get_role_api_v1_users_permissions_roles__role_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["用户管理"],"summary":"更新角色","description":"更新角色","operationId":"update_role_api_v1_users_permissions_roles__role_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Role Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["用户管理"],"summary":"删除角色","description":"删除角色","operationId":"delete_role_api_v1_users_permissions_roles__role_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete Role Api V1 Users Permissions Roles Role Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/permissions/users/{user_id}/roles":{"post":{"tags":["用户管理"],"summary":"为用户分配角色","description":"为用户分配角色(会替换用户现有角色)","operationId":"assign_roles_to_user_api_v1_users_permissions_users__user_id__roles_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoleAssignRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserRoleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["用户管理"],"summary":"获取用户角色列表","description":"获取用户的角色列表","operationId":"get_user_roles_api_v1_users_permissions_users__user_id__roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Role"},"title":"Response Get User Roles Api V1 Users Permissions Users User Id Roles Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/permissions/users/{user_id}/roles/{role_id}":{"delete":{"tags":["用户管理"],"summary":"移除用户角色","description":"移除用户的特定角色","operationId":"remove_user_role_api_v1_users_permissions_users__user_id__roles__role_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}},{"name":"role_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Role Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Remove User Role Api V1 Users Permissions Users User Id Roles Role Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users":{"post":{"tags":["用户管理"],"summary":"创建系统级用户","description":"创建系统级用户(需要系统权限)","operationId":"create_system_user_api_v1_users_system_users_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["用户管理"],"summary":"获取所有用户账户列表","description":"获取所有用户账户列表(需要系统权限)\n\n支持以下功能:\n- 分页查询\n- 多条件搜索过滤(支持企业名称模糊搜索)\n- 系统用户和租户超级用户管理","operationId":"list_system_users_api_v1_users_system_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词(用户名、邮箱、全名、手机号、企业名称)","title":"Search"},"description":"搜索关键词(用户名、邮箱、全名、手机号、企业名称)"},{"name":"is_active","in":"query","required":false,"schema":{"type":"boolean","description":"是否活跃","title":"Is Active"},"description":"是否活跃"},{"name":"tenant_id","in":"query","required":false,"schema":{"type":"string","description":"租户id","title":"Tenant Id"},"description":"租户id"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_UserListResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/{user_id}":{"get":{"tags":["用户管理"],"summary":"获取系统用户信息","description":"获取系统用户信息(需要系统权限)","operationId":"get_system_user_api_v1_users_system_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["用户管理"],"summary":"更新系统用户信息","description":"更新系统用户信息(需要系统权限)","operationId":"update_system_user_api_v1_users_system_users__user_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["用户管理"],"summary":"删除系统用户","description":"删除系统用户(需要系统权限)","operationId":"delete_system_user_api_v1_users_system_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Delete System User Api V1 Users System Users User Id Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/stats/summary":{"get":{"tags":["用户管理"],"summary":"获取系统用户统计信息","description":"获取系统用户统计信息(需要系统权限)","operationId":"get_system_user_stats_api_v1_users_system_users_stats_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Get System User Stats Api V1 Users System Users Stats Summary Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/users/system/users/{user_id}/activate":{"post":{"tags":["用户管理"],"summary":"激活系统用户","description":"激活系统用户(需要系统权限)","operationId":"activate_system_user_api_v1_users_system_users__user_id__activate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Activate System User Api V1 Users System Users User Id Activate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/users/system/users/{user_id}/deactivate":{"post":{"tags":["用户管理"],"summary":"停用系统用户","description":"停用系统用户(需要系统权限)","operationId":"deactivate_system_user_api_v1_users_system_users__user_id__deactivate_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Deactivate System User Api V1 Users System Users User Id Deactivate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants":{"post":{"tags":["租户管理"],"summary":"创建租户","description":"创建新租户","operationId":"create_tenant_api_v1_tenants_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["租户管理"],"summary":"查询企业列表","description":"获取租户列表","operationId":"list_tenants_api_v1_tenants_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"企业名称、编码(模糊查询)","title":"Search"},"description":"企业名称、编码(模糊查询)"},{"name":"audit_status","in":"query","required":false,"schema":{"type":"string","description":"审核状态","title":"Audit Status"},"description":"审核状态"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/audit-logs":{"get":{"tags":["租户管理"],"summary":"获取租户审计日志","description":"获取租户审计日志","operationId":"get_tenant_audit_logs_api_v1_tenants_audit_logs_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"type":"string","description":"租户id","title":"Tenant Id"},"description":"租户id"},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"搜索关键词(用户名、邮箱、全名、手机号、企业名称)","title":"Search"},"description":"搜索关键词(用户名、邮箱、全名、手机号、企业名称)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantAuditLogResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/me":{"get":{"tags":["租户管理"],"summary":"获取当前租户信息","description":"获取当前登录租户的详细信息","operationId":"get_current_tenant_api_v1_tenants_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/submit":{"post":{"tags":["租户管理"],"summary":"提交租户审核","description":"提交租户审核","operationId":"submit_tenant_audit_api_v1_tenants_submit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantUpdateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/tenants/{tenant_id}":{"get":{"tags":["租户管理"],"summary":"获取企业详情","description":"获取租户详情","operationId":"get_tenant_api_v1_tenants__tenant_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["租户管理"],"summary":"删除租户(软删除)","description":"删除租户(软删除)","operationId":"delete_tenant_api_v1_tenants__tenant_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse_bool_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/audit":{"post":{"tags":["租户管理"],"summary":"审核租户","description":"审核租户","operationId":"audit_tenant_api_v1_tenants__tenant_id__audit_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAuditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/disable":{"patch":{"tags":["租户管理"],"summary":"禁用租户","description":"禁用租户","operationId":"disable_tenant_api_v1_tenants__tenant_id__disable_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/{tenant_id}/enable":{"patch":{"tags":["租户管理"],"summary":"启用租户","description":"启用租户","operationId":"enable_tenant_api_v1_tenants__tenant_id__enable_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tenants/anonymous/list":{"get":{"tags":["租户管理"],"summary":"匿名查询租户列表","description":"匿名查询租户列表 - 只返回已审核通过的租户ID、编码和名称","operationId":"list_anonymous_tenants_api_v1_tenants_anonymous_list_get","parameters":[{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"企业名称、编码(模糊查询)","title":"Search"},"description":"企业名称、编码(模糊查询)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TenantAnonymousResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments":{"post":{"tags":["部门管理"],"summary":"创建部门","description":"创建新的部门","operationId":"create_department_api_v1_departments_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["部门管理"],"summary":"获取部门列表","description":"分页获取部门列表,支持状态过滤和模糊查询","operationId":"get_departments_api_v1_departments_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":10,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","pattern":"^(asc|desc)$","description":"排序方向","default":"desc","title":"Sort Order"},"description":"排序方向"},{"name":"status_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"状态过滤","title":"Status Filter"},"description":"状态过滤"},{"name":"name_like","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"部门名称模糊查询","title":"Name Like"},"description":"部门名称模糊查询"},{"name":"code_like","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"部门编码模糊查询","title":"Code Like"},"description":"部门编码模糊查询"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_DepartmentResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/tree":{"get":{"tags":["部门管理"],"summary":"获取部门树形结构","description":"获取部门树形结构(一级部门及其子部门)","operationId":"get_department_tree_api_v1_departments_tree_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Output"},"type":"array","title":"Response Get Department Tree Api V1 Departments Tree Get"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/departments/{department_id}":{"get":{"tags":["部门管理"],"summary":"获取部门详情","description":"根据ID获取部门详情","operationId":"get_department_api_v1_departments__department_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["部门管理"],"summary":"更新部门","description":"更新部门信息","operationId":"update_department_api_v1_departments__department_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["部门管理"],"summary":"删除部门","description":"删除部门(需要先删除所有子部门和用户关联)","operationId":"delete_department_api_v1_departments__department_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/{department_id}/order":{"patch":{"tags":["部门管理"],"summary":"更新部门排序","description":"更新部门排序索引","operationId":"update_department_order_api_v1_departments__department_id__order_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}},{"name":"order_index","in":"query","required":true,"schema":{"type":"integer","minimum":0,"description":"排序索引","title":"Order Index"},"description":"排序索引"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/{department_id}/status":{"patch":{"tags":["部门管理"],"summary":"更新部门状态","description":"启用或停用部门","operationId":"update_department_status_api_v1_departments__department_id__status_patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}},{"name":"status","in":"query","required":true,"schema":{"type":"string","description":"状态: active/inactive","title":"Status"},"description":"状态: active/inactive"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DepartmentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departments/{department_id}/users-count":{"get":{"tags":["部门管理"],"summary":"获取部门用户数量","description":"获取部门下的用户数量","operationId":"get_department_users_count_api_v1_departments__department_id__users_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"department_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Department Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"获取登录日志列表","description":"获取登录日志列表","operationId":"list_login_logs_api_v1_logs_login_login_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":10,"title":"Size"},"description":"每页数量"},{"name":"keyword","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"关键词搜索","title":"Keyword"},"description":"关键词搜索"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IP地址","title":"Ip Address"},"description":"IP地址"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"登录状态","title":"Status"},"description":"登录状态"},{"name":"method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"登录方式","title":"Method"},"description":"登录方式"},{"name":"is_suspicious","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否可疑","title":"Is Suspicious"},"description":"是否可疑"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Login Logs Api V1 Logs Login Login Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs/statistics":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"获取登录统计信息","description":"获取登录统计信息","operationId":"get_login_statistics_api_v1_logs_login_login_logs_statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始日期","title":"Start Date"},"description":"开始日期"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束日期","title":"End Date"},"description":"结束日期"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginLogStatistics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs/export":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"导出登录日志","description":"导出登录日志","operationId":"export_login_logs_api_v1_logs_login_login_logs_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(csv|excel)$","description":"导出格式","default":"csv","title":"Format"},"description":"导出格式"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs/suspicious":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"获取可疑登录记录","description":"获取可疑登录记录","operationId":"get_suspicious_logins_api_v1_logs_login_login_logs_suspicious_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Suspicious Logins Api V1 Logs Login Login Logs Suspicious Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs/failed-attempts":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"获取失败登录尝试","description":"获取失败登录尝试","operationId":"get_failed_login_attempts_api_v1_logs_login_login_logs_failed_attempts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"},{"name":"username","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户名","title":"Username"},"description":"用户名"},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IP地址","title":"Ip Address"},"description":"IP地址"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Failed Login Attempts Api V1 Logs Login Login Logs Failed Attempts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/login/login-logs/user/{user_id}/history":{"get":{"tags":["日志管理","日志管理","登录日志"],"summary":"获取用户登录历史","description":"获取用户登录历史","operationId":"get_user_login_history_api_v1_logs_login_login_logs_user__user_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"记录数量限制","default":50,"title":"Limit"},"description":"记录数量限制"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Login History Api V1 Logs Login Login Logs User User Id History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"获取操作日志列表","description":"获取操作日志列表","operationId":"list_operation_logs_api_v1_logs_operation_operation_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"keyword","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"关键词搜索","title":"Keyword"},"description":"关键词搜索"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"operation_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作类型","title":"Operation Type"},"description":"操作类型"},{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作模块","title":"Module"},"description":"操作模块"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作动作","title":"Action"},"description":"操作动作"},{"name":"request_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"请求方法","title":"Request Method"},"description":"请求方法"},{"name":"response_status","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"响应状态码","title":"Response Status"},"description":"响应状态码"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_OperationLogResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs/statistics":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"获取操作统计信息","description":"获取操作统计信息","operationId":"get_operation_statistics_api_v1_logs_operation_operation_logs_statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始日期","title":"Start Date"},"description":"开始日期"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束日期","title":"End Date"},"description":"结束日期"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationLogStatistics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs/export":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"导出操作日志","description":"导出操作日志","operationId":"export_operation_logs_api_v1_logs_operation_operation_logs_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(csv|excel)$","description":"导出格式","default":"csv","title":"Format"},"description":"导出格式"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs/errors":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"获取错误操作记录","description":"获取错误操作记录","operationId":"get_error_operations_api_v1_logs_operation_operation_logs_errors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"},{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作模块","title":"Module"},"description":"操作模块"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Error Operations Api V1 Logs Operation Operation Logs Errors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs/module/{module}/history":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"获取模块操作记录","description":"获取模块操作记录","operationId":"get_module_operations_api_v1_logs_operation_operation_logs_module__module__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"module","in":"path","required":true,"schema":{"type":"string","title":"Module"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"},{"name":"operation_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作类型","title":"Operation Type"},"description":"操作类型"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Module Operations Api V1 Logs Operation Operation Logs Module Module History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/operation/operation-logs/user/{user_id}/history":{"get":{"tags":["日志管理","日志管理","操作日志"],"summary":"获取用户操作历史","description":"获取用户操作历史","operationId":"get_user_operation_history_api_v1_logs_operation_operation_logs_user__user_id__history_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"记录数量限制","default":50,"title":"Limit"},"description":"记录数量限制"},{"name":"module","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"操作模块","title":"Module"},"description":"操作模块"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Operation History Api V1 Logs Operation Operation Logs User User Id History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取网络日志列表","description":"获取网络日志列表","operationId":"list_network_logs_api_v1_logs_network_network_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":10,"title":"Size"},"description":"每页数量"},{"name":"keyword","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"关键词搜索","title":"Keyword"},"description":"关键词搜索"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IP地址","title":"Ip Address"},"description":"IP地址"},{"name":"request_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"请求方法","title":"Request Method"},"description":"请求方法"},{"name":"request_path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"请求路径","title":"Request Path"},"description":"请求路径"},{"name":"response_status","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"响应状态码","title":"Response Status"},"description":"响应状态码"},{"name":"is_error","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否错误","title":"Is Error"},"description":"是否错误"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Network Logs Api V1 Logs Network Network Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/statistics":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取网络统计信息","description":"获取网络统计信息","operationId":"get_network_statistics_api_v1_logs_network_network_logs_statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始日期","title":"Start Date"},"description":"开始日期"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束日期","title":"End Date"},"description":"结束日期"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkLogStatistics"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/export":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"导出网络日志","description":"导出网络日志","operationId":"export_network_logs_api_v1_logs_network_network_logs_export_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"format","in":"query","required":false,"schema":{"type":"string","pattern":"^(csv|excel)$","description":"导出格式","default":"csv","title":"Format"},"description":"导出格式"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/errors":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取错误请求记录","description":"获取错误请求记录","operationId":"get_error_requests_api_v1_logs_network_network_logs_errors_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"},{"name":"status_code","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"特定状态码","title":"Status Code"},"description":"特定状态码"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Error Requests Api V1 Logs Network Network Logs Errors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/slow":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取慢请求记录","description":"获取慢请求记录","operationId":"get_slow_requests_api_v1_logs_network_network_logs_slow_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"threshold_seconds","in":"query","required":false,"schema":{"type":"number","maximum":60.0,"minimum":0.1,"description":"阈值(秒)","default":2.0,"title":"Threshold Seconds"},"description":"阈值(秒)"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Slow Requests Api V1 Logs Network Network Logs Slow Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/ip/{ip_address}/activity":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取IP活动记录","description":"获取IP活动记录","operationId":"get_ip_activity_api_v1_logs_network_network_logs_ip__ip_address__activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"ip_address","in":"path","required":true,"schema":{"type":"string","title":"Ip Address"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ip Activity Api V1 Logs Network Network Logs Ip Ip Address Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/network/network-logs/endpoint/{endpoint}/statistics":{"get":{"tags":["日志管理","日志管理","网络日志"],"summary":"获取端点统计信息","description":"获取端点统计信息","operationId":"get_endpoint_statistics_api_v1_logs_network_network_logs_endpoint__endpoint__statistics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"endpoint","in":"path","required":true,"schema":{"type":"string","title":"Endpoint"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Endpoint Statistics Api V1 Logs Network Network Logs Endpoint Endpoint Statistics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/query/{log_type}":{"get":{"tags":["日志管理","日志管理","日志查询"],"summary":"统一日志搜索接口","description":"统一日志搜索接口","operationId":"search_logs_api_v1_logs_query__log_type__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_type","in":"path","required":true,"schema":{"type":"string","title":"Log Type"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":10,"title":"Size"},"description":"每页数量"},{"name":"keyword","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"关键词搜索","title":"Keyword"},"description":"关键词搜索"},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Time"},"description":"开始时间"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Time"},"description":"结束时间"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"用户ID","title":"User Id"},"description":"用户ID"},{"name":"ip_address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"IP地址","title":"Ip Address"},"description":"IP地址"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Logs Api V1 Logs Query Log Type Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/query/{log_type}/export":{"post":{"tags":["日志管理","日志管理","日志查询"],"summary":"统一日志导出接口","description":"统一日志导出接口","operationId":"export_logs_api_v1_logs_query__log_type__export_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"log_type","in":"path","required":true,"schema":{"type":"string","title":"Log Type"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogExportRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/query/statistics/comprehensive":{"get":{"tags":["日志管理","日志管理","日志查询"],"summary":"获取综合统计信息","description":"获取综合统计信息","operationId":"get_comprehensive_statistics_api_v1_logs_query_statistics_comprehensive_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始日期","title":"Start Date"},"description":"开始日期"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束日期","title":"End Date"},"description":"结束日期"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Comprehensive Statistics Api V1 Logs Query Statistics Comprehensive Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/query/user/{user_id}/activity":{"get":{"tags":["日志管理","日志管理","日志查询"],"summary":"获取用户活动摘要","description":"获取用户活动摘要","operationId":"get_user_activity_summary_api_v1_logs_query_user__user_id__activity_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"时间范围(小时)","default":24,"title":"Hours"},"description":"时间范围(小时)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Activity Summary Api V1 Logs Query User User Id Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/logs/query/cleanup":{"post":{"tags":["日志管理","日志管理","日志查询"],"summary":"清理旧日志记录","description":"清理旧日志记录","operationId":"cleanup_old_logs_api_v1_logs_query_cleanup_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"保留天数","default":90,"title":"Days"},"description":"保留天数"},{"name":"log_types","in":"query","required":false,"schema":{"type":"string","description":"日志类型,逗号分隔","default":"login,operation,network","title":"Log Types"},"description":"日志类型,逗号分隔"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cleanup Old Logs Api V1 Logs Query Cleanup Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/send":{"post":{"tags":["消息系统","消息发送"],"summary":"发送消息","description":"发送消息\n\n- **message_type**: 消息类型 (email/sms/inbox/push)\n- **recipients**: 接收者列表\n- **subject**: 消息主题(可选)\n- **content**: 消息内容\n- **template_id**: 模板ID(可选)\n- **variables**: 模板变量(可选)\n- **priority**: 消息优先级(low/normal/high/urgent)\n- **scheduled_at**: 计划发送时间(可选)","operationId":"send_message_api_v1_messages_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/messages/schedule":{"post":{"tags":["消息系统","消息发送"],"summary":"发送定时消息","description":"发送定时消息\n\n与实时发送相同,但必须指定 scheduled_at 参数","operationId":"schedule_message_api_v1_messages_schedule_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendRequest"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/api/v1/messages/{message_id}/cancel":{"delete":{"tags":["消息系统","消息发送"],"summary":"取消定时消息","description":"取消定时消息\n\n- **message_id**: 消息ID","operationId":"cancel_scheduled_message_api_v1_messages__message_id__cancel_delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/{message_id}/retry":{"post":{"tags":["消息系统","消息发送"],"summary":"重试失败的消息","description":"重试失败的消息\n\n- **message_id**: 消息ID","operationId":"retry_failed_message_api_v1_messages__message_id__retry_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates":{"post":{"tags":["消息系统","消息模板"],"summary":"创建消息模板","description":"创建消息模板\n\n- **name**: 模板名称\n- **description**: 模板描述(可选)\n- **message_type**: 消息类型\n- **subject**: 消息主题(可选)\n- **content**: 模板内容\n- **template_type**: 模板类型(system/custom)","operationId":"create_template_api_v1_messages_templates_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["消息系统","消息模板"],"summary":"获取模板列表","description":"获取消息模板列表\n\n- **page**: 页码\n- **size**: 每页数量\n- **order_by**: 排序字段\n- **sort_order**: 排序方向\n- **message_type**: 按消息类型过滤\n- **template_type**: 按模板类型过滤\n- **is_active**: 按启用状态过滤","operationId":"list_templates_api_v1_messages_templates_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageType"},{"type":"null"}],"description":"消息类型","title":"Message Type"},"description":"消息类型"},{"name":"template_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/TemplateType"},{"type":"null"}],"description":"模板类型","title":"Template Type"},"description":"模板类型"},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"是否启用","title":"Is Active"},"description":"是否启用"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_MessageTemplateResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates/{template_id}":{"get":{"tags":["消息系统","消息模板"],"summary":"获取模板详情","description":"获取模板详情\n\n- **template_id**: 模板ID","operationId":"get_template_api_v1_messages_templates__template_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["消息系统","消息模板"],"summary":"更新模板","description":"更新模板\n\n- **template_id**: 模板ID\n- **name**: 模板名称(可选)\n- **description**: 模板描述(可选)\n- **subject**: 消息主题(可选)\n- **content**: 模板内容(可选)\n- **is_active**: 是否启用(可选)","operationId":"update_template_api_v1_messages_templates__template_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageTemplateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["消息系统","消息模板"],"summary":"删除模板","description":"删除模板\n\n- **template_id**: 模板ID","operationId":"delete_template_api_v1_messages_templates__template_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/templates/{template_id}/test":{"post":{"tags":["消息系统","消息模板"],"summary":"测试模板渲染","description":"测试模板渲染\n\n- **template_id**: 模板ID\n- **test_variables**: 测试变量","operationId":"test_template_api_v1_messages_templates__template_id__test_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Test Variables"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息日志列表","description":"获取消息日志列表\n\n根据查询条件获取消息发送记录列表,支持按消息类型、发送状态、接收者、时间范围等条件过滤。\n\n- **page**: 页码\n- **size**: 每页数量\n- **order_by**: 排序字段\n- **sort_order**: 排序方向\n- **message_type**: 按消息类型过滤\n- **status**: 按发送状态过滤\n- **recipient**: 按接收者过滤\n- **start_date**: 开始时间\n- **end_date**: 结束时间","operationId":"list_message_logs_api_v1_messages_logs_message_logs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageType"},{"type":"null"}],"description":"消息类型","title":"Message Type"},"description":"消息类型"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/MessageStatus"},{"type":"null"}],"description":"发送状态","title":"Status"},"description":"发送状态"},{"name":"recipient","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"接收者","title":"Recipient"},"description":"接收者"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"开始时间","title":"Start Date"},"description":"开始时间"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"结束时间","title":"End Date"},"description":"结束时间"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"页码","default":1,"title":"Page"},"description":"页码"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"每页数量","default":20,"title":"Size"},"description":"每页数量"},{"name":"order_by","in":"query","required":false,"schema":{"type":"string","description":"排序字段","title":"Order By"},"description":"排序字段"},{"name":"sort_order","in":"query","required":false,"schema":{"type":"string","description":"排序方向 (asc/desc)","default":"desc","title":"Sort Order"},"description":"排序方向 (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_MessageLogResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息详情","description":"获取消息详情\n\n根据消息ID获取详细的发送记录信息,包括消息内容、发送状态、时间戳等。\n\n- **message_id**: 消息ID","operationId":"get_message_log_api_v1_messages_logs_message_logs__message_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageLogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}/receipts":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息接收记录","description":"获取消息接收记录\n\n获取指定消息的所有接收记录,包括接收者、阅读状态、阅读时间等信息。\n\n- **message_id**: 消息ID","operationId":"get_message_receipts_api_v1_messages_logs_message_logs__message_id__receipts_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageReceiptResponse"},"title":"Response Get Message Receipts Api V1 Messages Logs Message Logs Message Id Receipts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/{message_id}/read":{"post":{"tags":["消息系统","消息日志"],"summary":"标记消息为已读","description":"标记消息为已读\n\n- **message_id**: 消息ID\n- **recipient**: 接收者","operationId":"mark_message_as_read_api_v1_messages_logs_message_logs__message_id__read_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Message Id"}},{"name":"recipient","in":"query","required":true,"schema":{"type":"string","description":"接收者","title":"Recipient"},"description":"接收者"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/statistics/overview":{"get":{"tags":["消息系统","消息日志"],"summary":"获取消息统计概览","description":"获取消息统计概览\n\n- **days**: 统计天数","operationId":"get_message_statistics_api_v1_messages_logs_message_logs_statistics_overview_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"统计天数","default":30,"title":"Days"},"description":"统计天数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/statistics/recipient/{recipient}":{"get":{"tags":["消息系统","消息日志"],"summary":"获取接收者统计","description":"获取接收者统计\n\n- **recipient**: 接收者\n- **days**: 统计天数","operationId":"get_recipient_statistics_api_v1_messages_logs_message_logs_statistics_recipient__recipient__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recipient","in":"path","required":true,"schema":{"type":"string","title":"Recipient"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"统计天数","default":30,"title":"Days"},"description":"统计天数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/unread/count":{"get":{"tags":["消息系统","消息日志"],"summary":"获取未读消息数量","description":"获取未读消息数量\n\n- **recipient**: 接收者","operationId":"get_unread_count_api_v1_messages_logs_message_logs_unread_count_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"recipient","in":"query","required":false,"schema":{"type":"string","description":"接收者","title":"Recipient"},"description":"接收者"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/logs/message-logs/cleanup":{"post":{"tags":["消息系统","消息日志"],"summary":"清理旧日志","description":"清理旧日志\n\n清理指定天数之前的消息日志和接收记录。\n\n- **days**: 保留天数,默认90天","operationId":"cleanup_old_logs_api_v1_messages_logs_message_logs_cleanup_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"保留天数","default":90,"title":"Days"},"description":"保留天数"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/configs/configs":{"get":{"tags":["消息系统","外部服务配置"],"summary":"获取外部服务配置列表","description":"获取外部服务配置列表\n\n- **service_type**: 服务类型过滤 (可选)\n- **is_active**: 是否启用过滤 (可选)","operationId":"list_external_service_configs_api_v1_messages_configs_configs_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"service_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ExternalServiceType"},{"type":"null"}],"title":"Service Type"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExternalServiceConfigResponse"},"title":"Response List External Service Configs Api V1 Messages Configs Configs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["消息系统","外部服务配置"],"summary":"创建外部服务配置","description":"创建外部服务配置\n\n- **name**: 服务名称\n- **service_type**: 服务类型\n- **config**: 服务配置 (JSON格式)\n- **is_active**: 是否启用\n- **is_default**: 是否默认服务","operationId":"create_external_service_config_api_v1_messages_configs_configs_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/configs/configs/{config_id}":{"get":{"tags":["消息系统","外部服务配置"],"summary":"获取外部服务配置详情","description":"获取外部服务配置详情\n\n- **config_id**: 配置ID","operationId":"get_external_service_config_api_v1_messages_configs_configs__config_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["消息系统","外部服务配置"],"summary":"更新外部服务配置","description":"更新外部服务配置\n\n- **config_id**: 配置ID\n- **config_data**: 更新数据","operationId":"update_external_service_config_api_v1_messages_configs_configs__config_id__put","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["消息系统","外部服务配置"],"summary":"删除外部服务配置","description":"删除外部服务配置\n\n- **config_id**: 配置ID","operationId":"delete_external_service_config_api_v1_messages_configs_configs__config_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/configs/configs/{config_id}/set-default":{"post":{"tags":["消息系统","外部服务配置"],"summary":"设置默认服务","description":"设置默认服务\n\n- **config_id**: 配置ID","operationId":"set_default_service_api_v1_messages_configs_configs__config_id__set_default_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalServiceConfigResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/messages/configs/configs/{config_id}/health-check":{"post":{"tags":["消息系统","外部服务配置"],"summary":"检查服务健康状态","description":"检查服务健康状态\n\n- **config_id**: 配置ID","operationId":"check_service_health_api_v1_messages_configs_configs__config_id__health_check_post","security":[{"HTTPBearer":[]}],"parameters":[{"name":"config_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Config Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/health":{"get":{"tags":["系统管理"],"summary":"基础健康检查","description":"基础健康检查","operationId":"health_check_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Health Check Api V1 Health Get"}}}}}}},"/api/v1/health/detailed":{"get":{"tags":["系统管理"],"summary":"详细健康检查","description":"详细健康检查,包含数据库连接状态","operationId":"detailed_health_check_api_v1_health_detailed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Detailed Health Check Api V1 Health Detailed Get"}}}}}}},"/api/v1/system/info":{"get":{"tags":["系统管理"],"summary":"获取系统信息","description":"获取系统基本信息","operationId":"get_system_info_api_v1_system_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Info Api V1 System Info Get"}}}}}}},"/api/v1/system/stats":{"get":{"tags":["系统管理"],"summary":"获取系统统计信息","description":"获取系统统计信息","operationId":"get_system_stats_api_v1_system_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Stats Api V1 System Stats Get"}}}}}}},"/api/v1/system/config":{"get":{"tags":["系统管理"],"summary":"获取系统配置","description":"获取公开的系统配置","operationId":"get_system_config_api_v1_system_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get System Config Api V1 System Config Get"}}}}}}},"/api/v1/system/metrics":{"get":{"tags":["系统管理"],"summary":"获取系统性能指标","description":"获取系统性能指标\n\n需要超级管理员权限访问\n\n- **sanitize**: 是否对敏感数据进行脱敏处理(默认:True)","operationId":"get_system_metrics_api_v1_system_metrics_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"sanitize","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Sanitize"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemMetricsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/system/metrics/summary":{"get":{"tags":["系统管理"],"summary":"获取性能指标摘要","description":"获取系统性能指标摘要\n\n需要超级管理员权限访问","operationId":"get_performance_summary_api_v1_system_metrics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PerformanceMetricsSummary"}}}}},"security":[{"HTTPBearer":[]}]}},"/health":{"get":{"summary":"Health Check","description":"健康检查","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApplicationMetrics":{"properties":{"request_count":{"type":"integer","minimum":0.0,"title":"Request Count","description":"请求总数"},"error_count":{"type":"integer","minimum":0.0,"title":"Error Count","description":"错误数量"},"avg_response_time":{"type":"number","minimum":0.0,"title":"Avg Response Time","description":"平均响应时间(毫秒)"},"active_connections":{"type":"integer","minimum":0.0,"title":"Active Connections","description":"活跃连接数"},"database_connections":{"additionalProperties":{"type":"integer"},"type":"object","title":"Database Connections","description":"数据库连接池状态"}},"type":"object","required":["request_count","error_count","avg_response_time","active_connections"],"title":"ApplicationMetrics","description":"应用性能指标模型"},"AuditStatus":{"type":"string","enum":["草稿","待审核","已通过","已拒绝"],"title":"AuditStatus","description":"审核状态枚举"},"BaseResponse_bool_":{"properties":{"success":{"type":"boolean","title":"Success","description":"请求是否成功","default":true},"code":{"type":"string","title":"Code","description":"业务状态码","default":"SUCCESS"},"message":{"type":"string","title":"Message","description":"响应消息","default":"操作成功"},"data":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Data","description":"响应数据"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"请求追踪ID"}},"type":"object","title":"BaseResponse[bool]"},"CPUInfo":{"properties":{"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"CPU 使用率百分比"},"core_count":{"type":"integer","minimum":1.0,"title":"Core Count","description":"CPU 核心数量"},"load_avg_1min":{"type":"number","minimum":0.0,"title":"Load Avg 1Min","description":"1分钟负载平均值"},"load_avg_5min":{"type":"number","minimum":0.0,"title":"Load Avg 5Min","description":"5分钟负载平均值"},"load_avg_15min":{"type":"number","minimum":0.0,"title":"Load Avg 15Min","description":"15分钟负载平均值"}},"type":"object","required":["usage_percent","core_count","load_avg_1min","load_avg_5min","load_avg_15min"],"title":"CPUInfo","description":"CPU 信息模型"},"CaptchaResponse":{"properties":{"captcha_id":{"type":"string","title":"Captcha Id","description":"验证码ID"},"image":{"type":"string","title":"Image","description":"验证码图片(base64)"}},"type":"object","required":["captcha_id","image"],"title":"CaptchaResponse","description":"验证码响应模型"},"CompanyScale":{"type":"string","enum":["小型(50人以下)","中型(50-300人)","大型(300人以上)"],"title":"CompanyScale","description":"公司规模枚举"},"DepartmentCreate":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","minimum":0.0,"title":"Order Index","description":"排序索引","default":0},"status":{"type":"string","title":"Status","description":"部门状态:active-启用, inactive-停用","default":"active"}},"type":"object","required":["code","name"],"title":"DepartmentCreate","description":"创建部门模式"},"DepartmentResponse":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentResponse","description":"部门响应模式"},"DepartmentTreeResponse-Input":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"},"children":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Input"},"type":"array","title":"Children","description":"子部门列表"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentTreeResponse","description":"部门树形响应模式"},"DepartmentTreeResponse-Output":{"properties":{"code":{"type":"string","maxLength":50,"minLength":1,"title":"Code","description":"部门编码"},"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"id":{"type":"string","format":"uuid","title":"Id","description":"部门ID"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id","description":"父部门ID"},"order_index":{"type":"integer","title":"Order Index","description":"排序索引"},"status":{"type":"string","title":"Status","description":"部门状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By","description":"创建人"},"updated_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Updated By","description":"更新人"},"children":{"items":{"$ref":"#/components/schemas/DepartmentTreeResponse-Output"},"type":"array","title":"Children","description":"子部门列表"}},"type":"object","required":["code","name","id","order_index","status","created_at","updated_at"],"title":"DepartmentTreeResponse","description":"部门树形响应模式"},"DepartmentUpdate":{"properties":{"code":{"anyOf":[{"type":"string","maxLength":50,"minLength":1},{"type":"null"}],"title":"Code","description":"部门编码"},"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name","description":"部门名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"部门描述"},"manager_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Manager Name","description":"部门负责人姓名"},"manager_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Manager Phone","description":"部门负责人联系电话"},"manager_email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Manager Email","description":"部门负责人邮箱"},"order_index":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Order Index","description":"排序索引"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"部门状态"}},"type":"object","title":"DepartmentUpdate","description":"更新部门模式"},"DiskInfo":{"properties":{"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总磁盘空间字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用磁盘空间字节数"},"free_bytes":{"type":"integer","minimum":0.0,"title":"Free Bytes","description":"可用磁盘空间字节数"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"磁盘使用率百分比"},"partitions":{"items":{"$ref":"#/components/schemas/DiskPartitionInfo"},"type":"array","title":"Partitions","description":"磁盘分区列表"}},"type":"object","required":["total_bytes","used_bytes","free_bytes","usage_percent"],"title":"DiskInfo","description":"磁盘信息模型"},"DiskPartitionInfo":{"properties":{"device":{"type":"string","title":"Device","description":"设备名称"},"mountpoint":{"type":"string","title":"Mountpoint","description":"挂载点"},"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总空间字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用空间字节数"},"free_bytes":{"type":"integer","minimum":0.0,"title":"Free Bytes","description":"可用空间字节��"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"使用率百分比"}},"type":"object","required":["device","mountpoint","total_bytes","used_bytes","free_bytes","usage_percent"],"title":"DiskPartitionInfo","description":"磁盘分区信息模型"},"ExternalServiceConfigCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"服务名称"},"service_type":{"$ref":"#/components/schemas/ExternalServiceType","description":"服务类型"},"config":{"type":"string","title":"Config","description":"服务配置 (JSON格式)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"服务描述"},"is_active":{"type":"boolean","title":"Is Active","description":"是否启用","default":true},"is_default":{"type":"boolean","title":"Is Default","description":"是否默认服务","default":false}},"type":"object","required":["name","service_type","config"],"title":"ExternalServiceConfigCreate","description":"外部服务配置创建请求"},"ExternalServiceConfigResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"配置ID"},"name":{"type":"string","title":"Name","description":"服务名称"},"service_type":{"$ref":"#/components/schemas/ExternalServiceType","description":"服务类型"},"config":{"type":"string","title":"Config","description":"服务配置"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"服务描述"},"is_active":{"type":"boolean","title":"Is Active","description":"是否启用"},"is_default":{"type":"boolean","title":"Is Default","description":"是否默认服务"},"is_healthy":{"type":"boolean","title":"Is Healthy","description":"是否健康"},"last_health_check":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Health Check","description":"最后健康检查时间"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["id","name","service_type","config","is_active","is_default","is_healthy","created_at","updated_at"],"title":"ExternalServiceConfigResponse","description":"外部服务配置响应"},"ExternalServiceConfigUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name","description":"服务名称"},"config":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Config","description":"服务配置 (JSON格式)"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"服务描述"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"是否启用"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default","description":"是否默认服务"}},"type":"object","title":"ExternalServiceConfigUpdate","description":"外部服务配置更新请求"},"ExternalServiceType":{"type":"string","enum":["smtp","sms_provider","push_service"],"title":"ExternalServiceType","description":"外部服务类型枚举"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InvoiceType":{"type":"string","enum":["普通发票","增值税专用发票","电子发票"],"title":"InvoiceType","description":"发票类型枚举"},"LogExportRequest":{"properties":{"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time","description":"开始时间"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time","description":"结束时间"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"用户ID"},"format":{"type":"string","pattern":"^(csv|excel)$","title":"Format","description":"导出格式","default":"csv"}},"type":"object","title":"LogExportRequest","description":"日志导出请求"},"LoginLogStatistics":{"properties":{"total_logins":{"type":"integer","title":"Total Logins","description":"总登录次数"},"successful_logins":{"type":"integer","title":"Successful Logins","description":"成功登录次数"},"failed_logins":{"type":"integer","title":"Failed Logins","description":"失败登录次数"},"suspicious_logins":{"type":"integer","title":"Suspicious Logins","description":"可疑登录次数"},"success_rate":{"type":"number","title":"Success Rate","description":"成功率"},"method_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Method Distribution","description":"登录方式分布"},"daily_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Daily Distribution","description":"每日登录分布"}},"type":"object","required":["total_logins","successful_logins","failed_logins","suspicious_logins","success_rate","method_distribution","daily_distribution"],"title":"LoginLogStatistics","description":"登录日志统计"},"MemoryInfo":{"properties":{"total_bytes":{"type":"integer","minimum":0.0,"title":"Total Bytes","description":"总内存字节数"},"used_bytes":{"type":"integer","minimum":0.0,"title":"Used Bytes","description":"已用内存字节数"},"available_bytes":{"type":"integer","minimum":0.0,"title":"Available Bytes","description":"可用内存字节数"},"usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Usage Percent","description":"内存使用率百分比"},"swap_total_bytes":{"type":"integer","minimum":0.0,"title":"Swap Total Bytes","description":"交换空间总字节数"},"swap_used_bytes":{"type":"integer","minimum":0.0,"title":"Swap Used Bytes","description":"交换空间已用字节数"},"swap_usage_percent":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Swap Usage Percent","description":"交换空间使用率百分比"}},"type":"object","required":["total_bytes","used_bytes","available_bytes","usage_percent","swap_total_bytes","swap_used_bytes","swap_usage_percent"],"title":"MemoryInfo","description":"内存信息模型"},"MessageLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"消息ID"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"消息主题"},"recipients":{"items":{"type":"string"},"type":"array","title":"Recipients","description":"接收者列表"},"status":{"type":"string","title":"Status","description":"发送状态"},"priority":{"$ref":"#/components/schemas/MessagePriority","description":"消息优先级"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"},"sent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Sent At","description":"实际发送时间"},"failure_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Failure Reason","description":"失败原因"},"retry_count":{"type":"integer","title":"Retry Count","description":"重试次数"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["id","message_type","recipients","status","priority","retry_count","created_at"],"title":"MessageLogResponse","description":"消息日志响应"},"MessagePriority":{"type":"string","enum":["low","normal","high","urgent"],"title":"MessagePriority","description":"消息优先级枚举"},"MessageReceiptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"接收记录ID"},"message_id":{"type":"string","format":"uuid","title":"Message Id","description":"消息ID"},"recipient":{"type":"string","title":"Recipient","description":"接收者"},"is_read":{"type":"boolean","title":"Is Read","description":"是否已读"},"is_delivered":{"type":"boolean","title":"Is Delivered","description":"是否已投递"},"read_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Read At","description":"阅读时间"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At","description":"投递时间"},"external_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Status","description":"外部服务状态"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["id","message_id","recipient","is_read","is_delivered","created_at"],"title":"MessageReceiptResponse","description":"消息接收记录响应"},"MessageSendRequest":{"properties":{"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"recipients":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Recipients","description":"接收者列表"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","minLength":1,"title":"Content","description":"消息内容"},"template_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Template Id","description":"模板ID"},"variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Variables","description":"模板变量"},"priority":{"$ref":"#/components/schemas/MessagePriority","description":"消息优先级","default":"normal"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"}},"type":"object","required":["message_type","recipients","content"],"title":"MessageSendRequest","description":"消息发送请求"},"MessageSendResponse":{"properties":{"message_id":{"type":"string","format":"uuid","title":"Message Id","description":"消息ID"},"status":{"type":"string","title":"Status","description":"发送状态"},"scheduled_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Scheduled At","description":"计划发送时间"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"type":"object","required":["message_id","status","created_at"],"title":"MessageSendResponse","description":"消息发送响应"},"MessageStatus":{"type":"string","enum":["pending","sending","sent","delivered","failed","cancelled"],"title":"MessageStatus","description":"消息状态枚举"},"MessageTemplateCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","minLength":1,"title":"Content","description":"模板内容"},"template_type":{"$ref":"#/components/schemas/TemplateType","description":"模板类型","default":"custom"}},"type":"object","required":["name","message_type","content"],"title":"MessageTemplateCreate","description":"消息模板创建请求"},"MessageTemplateResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"模板ID"},"name":{"type":"string","title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"message_type":{"$ref":"#/components/schemas/MessageType","description":"消息类型"},"template_type":{"$ref":"#/components/schemas/TemplateType","description":"模板类型"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"type":"string","title":"Content","description":"模板内容"},"variables":{"items":{"type":"string"},"type":"array","title":"Variables","description":"模板变量列表"},"is_active":{"type":"boolean","title":"Is Active","description":"是否启用"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"type":"object","required":["id","name","message_type","template_type","content","variables","is_active","created_at","updated_at"],"title":"MessageTemplateResponse","description":"消息模板响应"},"MessageTemplateUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":100,"minLength":1},{"type":"null"}],"title":"Name","description":"模板名称"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"模板描述"},"subject":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Subject","description":"消息主题"},"content":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Content","description":"模板内容"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"是否启用"}},"type":"object","title":"MessageTemplateUpdate","description":"消息模板更新请求"},"MessageType":{"type":"string","enum":["email","sms","inbox","push"],"title":"MessageType","description":"消息类型枚举"},"NetworkInfo":{"properties":{"interfaces":{"items":{"$ref":"#/components/schemas/NetworkInterfaceInfo"},"type":"array","title":"Interfaces","description":"网络接口列表"},"connections_count":{"type":"integer","minimum":0.0,"title":"Connections Count","description":"连接数量"}},"type":"object","required":["connections_count"],"title":"NetworkInfo","description":"网络信息模型"},"NetworkInterfaceInfo":{"properties":{"name":{"type":"string","title":"Name","description":"接口名称"},"is_up":{"type":"boolean","title":"Is Up","description":"接口是否启用"},"bytes_sent":{"type":"integer","minimum":0.0,"title":"Bytes Sent","description":"发送字节数"},"bytes_recv":{"type":"integer","minimum":0.0,"title":"Bytes Recv","description":"接收字节数"},"packets_sent":{"type":"integer","minimum":0.0,"title":"Packets Sent","description":"发送包数"},"packets_recv":{"type":"integer","minimum":0.0,"title":"Packets Recv","description":"接收包数"}},"type":"object","required":["name","is_up","bytes_sent","bytes_recv","packets_sent","packets_recv"],"title":"NetworkInterfaceInfo","description":"网络接口信息模型"},"NetworkLogStatistics":{"properties":{"total_requests":{"type":"integer","title":"Total Requests","description":"总请求数"},"error_requests":{"type":"integer","title":"Error Requests","description":"错误请求数"},"slow_requests":{"type":"integer","title":"Slow Requests","description":"慢请求数"},"error_rate":{"type":"number","title":"Error Rate","description":"错误率"},"slow_request_rate":{"type":"number","title":"Slow Request Rate","description":"慢请求率"},"method_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Method Distribution","description":"请求方法分布"},"status_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Status Distribution","description":"状态码分布"}},"type":"object","required":["total_requests","error_requests","slow_requests","error_rate","slow_request_rate","method_distribution","status_distribution"],"title":"NetworkLogStatistics","description":"网络日志统计"},"OperationLogResponse":{"properties":{"id":{"type":"string","title":"Id","description":"日志ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"username":{"type":"string","title":"Username","description":"用户名"},"user_id":{"type":"string","title":"User Id","description":"用户ID"},"operation_type":{"type":"string","title":"Operation Type","description":"操作类型"},"module":{"type":"string","title":"Module","description":"操作模块"},"action":{"type":"string","title":"Action","description":"操作动作"},"request_method":{"type":"string","title":"Request Method","description":"请求方法"},"request_url":{"type":"string","title":"Request Url","description":"请求URL"},"request_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Headers","description":"请求头"},"request_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Body","description":"请求体"},"request_params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Request Params","description":"请求参数"},"response_status":{"type":"integer","title":"Response Status","description":"响应状态码"},"response_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Body","description":"响应体"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"错误信息"},"processing_time":{"type":"number","title":"Processing Time","description":"处理时间"}},"type":"object","required":["id","created_at","updated_at","username","user_id","operation_type","module","action","request_method","request_url","response_status","processing_time"],"title":"OperationLogResponse","description":"操作日志响应"},"OperationLogStatistics":{"properties":{"total_operations":{"type":"integer","title":"Total Operations","description":"总操作次数"},"error_operations":{"type":"integer","title":"Error Operations","description":"错误操作次数"},"error_rate":{"type":"number","title":"Error Rate","description":"错误率"},"type_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Type Distribution","description":"操作类型分布"},"module_distribution":{"additionalProperties":{"type":"integer"},"type":"object","title":"Module Distribution","description":"模块分布"}},"type":"object","required":["total_operations","error_operations","error_rate","type_distribution","module_distribution"],"title":"OperationLogStatistics","description":"操作日志统计"},"PagedResponse_DepartmentResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/DepartmentResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[DepartmentResponse]"},"PagedResponse_MessageLogResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MessageLogResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[MessageLogResponse]"},"PagedResponse_MessageTemplateResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/MessageTemplateResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[MessageTemplateResponse]"},"PagedResponse_OperationLogResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/OperationLogResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[OperationLogResponse]"},"PagedResponse_Permission_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Permission"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[Permission]"},"PagedResponse_Role_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Role"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[Role]"},"PagedResponse_TenantAnonymousResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantAnonymousResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantAnonymousResponse]"},"PagedResponse_TenantAuditLogResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantAuditLogResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantAuditLogResponse]"},"PagedResponse_TenantResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/TenantResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[TenantResponse]"},"PagedResponse_UserListResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserListResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[UserListResponse]"},"PagedResponse_UserResponse_":{"properties":{"data":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Data","description":"数据列表"},"total":{"type":"integer","title":"Total","description":"数据总数"},"page":{"type":"integer","title":"Page","description":"当前页数"},"size":{"type":"integer","title":"Size","description":"当前数量"},"total_pages":{"type":"integer","title":"Total Pages","description":"总页数"},"has_next":{"type":"boolean","title":"Has Next","description":"是否有下一页"},"has_prev":{"type":"boolean","title":"Has Prev","description":"是否有上一页"}},"type":"object","required":["total","page","size","total_pages","has_next","has_prev"],"title":"PagedResponse[UserResponse]"},"PerformanceMetricsSummary":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"数据收集时间戳"},"cpu_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Cpu Usage","description":"CPU 使用率"},"memory_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Memory Usage","description":"内存使用率"},"disk_usage":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Disk Usage","description":"磁盘使用率"},"system_load":{"type":"number","minimum":0.0,"title":"System Load","description":"系统负载"},"status":{"type":"string","title":"Status","description":"系统状态"}},"type":"object","required":["timestamp","cpu_usage","memory_usage","disk_usage","system_load","status"],"title":"PerformanceMetricsSummary","description":"性能指标摘要模型"},"Permission":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"权限名称"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description","description":"权限描述"},"group":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Group","description":"权限分组"},"resource":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Resource","description":"资源名称"},"action":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Action","description":"操作名称"},"id":{"type":"string","format":"uuid","title":"Id"},"is_system":{"type":"boolean","title":"Is System"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"resource_action":{"type":"string","title":"Resource Action","description":"资源:操作格式"}},"type":"object","required":["name","id","is_system","created_at","updated_at","resource_action"],"title":"Permission","description":"权限响应模型"},"PythonRuntimeInfo":{"properties":{"version":{"type":"string","title":"Version","description":"Python 版本"},"implementation":{"type":"string","title":"Implementation","description":"Python 实现"},"memory_usage_bytes":{"type":"integer","minimum":0.0,"title":"Memory Usage Bytes","description":"内存使用字节数"},"gc_stats":{"additionalProperties":true,"type":"object","title":"Gc Stats","description":"垃圾回收统计"}},"type":"object","required":["version","implementation","memory_usage_bytes"],"title":"PythonRuntimeInfo","description":"Python 运行时信息模型"},"Role":{"properties":{"name":{"type":"string","maxLength":50,"minLength":1,"title":"Name","description":"角色名称"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description","description":"角色描述"},"id":{"type":"string","format":"uuid","title":"Id"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["name","id","tenant_id","created_at","updated_at"],"title":"Role","description":"角色响应模型"},"RoleCreate":{"properties":{"name":{"type":"string","maxLength":50,"minLength":1,"title":"Name","description":"角色名称"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description","description":"角色描述"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Permission Ids","description":"权限ID列表"}},"type":"object","required":["name"],"title":"RoleCreate","description":"创建角色模型"},"RoleUpdate":{"properties":{"name":{"anyOf":[{"type":"string","maxLength":50,"minLength":1},{"type":"null"}],"title":"Name","description":"角色名称"},"description":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Description","description":"角色描述"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active","description":"是否激活"},"permission_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Permission Ids","description":"权限ID列表"}},"type":"object","title":"RoleUpdate","description":"更新角色模型"},"SystemMetricsResponse":{"properties":{"timestamp":{"type":"string","format":"date-time","title":"Timestamp","description":"数据收集时间戳"},"cpu":{"$ref":"#/components/schemas/CPUInfo","description":"CPU 信息"},"memory":{"$ref":"#/components/schemas/MemoryInfo","description":"内存信息"},"disk":{"$ref":"#/components/schemas/DiskInfo","description":"磁盘信息"},"network":{"$ref":"#/components/schemas/NetworkInfo","description":"网络信息"},"python_runtime":{"$ref":"#/components/schemas/PythonRuntimeInfo","description":"Python 运行时信息"},"application":{"$ref":"#/components/schemas/ApplicationMetrics","description":"应用性能指标"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"元数据"}},"type":"object","required":["timestamp","cpu","memory","disk","network","python_runtime","application"],"title":"SystemMetricsResponse","description":"系统性能指标响应模型"},"TemplateType":{"type":"string","enum":["system","custom"],"title":"TemplateType","description":"模板类型枚举"},"TenantAnonymousResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"租户ID"},"tenant_code":{"type":"string","title":"Tenant Code","description":"租户编码"},"company_name":{"type":"string","title":"Company Name","description":"企业名称"},"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"}},"additionalProperties":false,"type":"object","required":["id","tenant_code","company_name","audit_status"],"title":"TenantAnonymousResponse","description":"租户匿名查询响应模型 - 只包含ID和名称"},"TenantAuditLogResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"日志ID"},"action":{"type":"string","title":"Action","description":"操作类型"},"action_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action By","description":"操作人"},"action_time":{"type":"string","format":"date-time","title":"Action Time","description":"操作时间"},"snapshot_company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Name","description":"企业名称快照"},"snapshot_company_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Type","description":"企业类型快照"},"snapshot_province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Province","description":"省份快照"},"snapshot_city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot City","description":"城市快照"},"snapshot_district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot District","description":"区县快照"},"snapshot_detailed_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Detailed Address","description":"详细地址快照"},"snapshot_registrant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Registrant","description":"登记人快照"},"snapshot_contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Contact Phone","description":"联系电话快照"},"snapshot_bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Account","description":"银行账号快照"},"snapshot_bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Name","description":"开户行快照"},"snapshot_bank_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Full Name","description":"开户行全称快照"},"snapshot_bank_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Bank Address","description":"开户行地址快照"},"snapshot_social_credit_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Social Credit Code","description":"社会信用代码快照"},"snapshot_legal_person_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Legal Person Name","description":"法人姓名快照"},"snapshot_audit_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Audit Status","description":"审核状态快照"},"snapshot_audit_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Audit Comment","description":"审核备注快照"},"snapshot_company_scale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snapshot Company Scale","description":"公司规模快照"},"snapshot_registered_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Snapshot Registered Capital","description":"注册资本快照"},"change_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Change Summary","description":"变更摘要描述"},"ip_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip Address","description":"操作IP地址"},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent","description":"用户代理"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","description":"请求追踪ID"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"}},"additionalProperties":false,"type":"object","required":["id","action","action_time","created_at"],"title":"TenantAuditLogResponse","description":"租户审计日志响应模型"},"TenantAuditRequest":{"properties":{"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"},"audit_comment":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Audit Comment","description":"审核备注"}},"additionalProperties":false,"type":"object","required":["audit_status"],"title":"TenantAuditRequest","description":"租户审核请求模型"},"TenantCreateRequest":{"properties":{"company_name":{"type":"string","maxLength":200,"minLength":2,"title":"Company Name","description":"企业名称"},"tenant_code":{"type":"string","maxLength":200,"minLength":2,"title":"Tenant Code","description":"企业编码"},"company_type":{"$ref":"#/components/schemas/TenantType","description":"企业类型"}},"additionalProperties":false,"type":"object","required":["company_name","tenant_code","company_type"],"title":"TenantCreateRequest","description":"创建租户请求模型"},"TenantResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"租户ID"},"tenant_code":{"type":"string","title":"Tenant Code","description":"租户编码"},"is_active":{"type":"boolean","title":"Is Active","description":"是否活跃"},"company_name":{"type":"string","title":"Company Name","description":"企业名称"},"company_type":{"anyOf":[{"$ref":"#/components/schemas/TenantType"},{"type":"null"}],"description":"企业类型"},"province":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Province","description":"省份"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"城市"},"district":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"District","description":"区县"},"detailed_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detailed Address","description":"详细地址"},"registrant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Registrant","description":"登记人"},"contact_phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Phone","description":"联系电话(已脱敏)"},"bank_account":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Account","description":"银行账号(已脱敏)"},"bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Name","description":"开户行"},"bank_full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Full Name","description":"开户行全称"},"bank_address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Address","description":"开户行地址"},"social_credit_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Social Credit Code","description":"社会信用代码(已脱敏)"},"legal_person_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Legal Person Name","description":"法人姓名(已脱敏)"},"company_scale":{"anyOf":[{"$ref":"#/components/schemas/CompanyScale"},{"type":"null"}],"description":"公司规模"},"registered_capital":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Registered Capital","description":"注册资本(万元)"},"established_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Established Date","description":"成立时间"},"invoice_type":{"anyOf":[{"$ref":"#/components/schemas/InvoiceType"},{"type":"null"}],"description":"发票类型"},"business_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Business Scope","description":"经营范围"},"submit_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Submit Time","description":"提交时间"},"audit_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Audit Time","description":"审核时间"},"auditor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auditor","description":"审核人"},"audit_status":{"$ref":"#/components/schemas/AuditStatus","description":"审核状态"},"audit_comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audit Comment","description":"审核备注"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"}},"additionalProperties":false,"type":"object","required":["id","tenant_code","is_active","company_name","audit_status","created_at","updated_at"],"title":"TenantResponse","description":"租户响应模型(已脱敏)"},"TenantType":{"type":"string","enum":["个体工商户","有限责任公司","股份有限公司","合伙企业","其他"],"title":"TenantType","description":"企业类型枚举"},"TenantUpdateRequest":{"properties":{"company_name":{"anyOf":[{"type":"string","maxLength":200,"minLength":2},{"type":"null"}],"title":"Company Name","description":"企业名称"},"company_type":{"anyOf":[{"$ref":"#/components/schemas/TenantType"},{"type":"null"}],"description":"企业类型"},"province":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Province","description":"省份"},"city":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"City","description":"城市"},"district":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"District","description":"区县"},"detailed_address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Detailed Address","description":"详细地址"},"registrant":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Registrant","description":"登记人"},"contact_phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Contact Phone","description":"联系电话"},"bank_account":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Bank Account","description":"银行账号"},"bank_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Bank Name","description":"开户行"},"bank_full_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Bank Full Name","description":"开户行全称"},"bank_address":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bank Address","description":"开户行地址"},"bank_permit_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Bank Permit Image","description":"开户许可证图片路径"},"social_credit_code":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Social Credit Code","description":"社会信用代码"},"business_license_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Business License Image","description":"营业执照图片路径"},"legal_person_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Legal Person Name","description":"法人姓名"},"id_card_front_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Id Card Front Image","description":"身份证正面图片"},"id_card_back_image":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Id Card Back Image","description":"身份证反面图片"},"company_scale":{"anyOf":[{"$ref":"#/components/schemas/CompanyScale"},{"type":"null"}],"description":"公司规模"},"registered_capital":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Registered Capital","description":"注册资本(万元)"},"established_date":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Established Date","description":"成立时间"},"invoice_type":{"anyOf":[{"$ref":"#/components/schemas/InvoiceType"},{"type":"null"}],"description":"发票类型"},"business_scope":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Business Scope","description":"经营范围"}},"additionalProperties":false,"type":"object","title":"TenantUpdateRequest","description":"更新租户请求模型"},"Token":{"properties":{"access_token":{"type":"string","title":"Access Token","description":"访问令牌"},"refresh_token":{"type":"string","title":"Refresh Token","description":"刷新令牌"},"token_type":{"type":"string","title":"Token Type","description":"令牌类型","default":"bearer"},"expires_in":{"type":"integer","title":"Expires In","description":"过期时间(秒)"}},"type":"object","required":["access_token","refresh_token","expires_in"],"title":"Token","description":"令牌模型"},"User":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"id":{"type":"string","format":"uuid","title":"Id"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id"},"is_active":{"type":"boolean","title":"Is Active"},"is_superuser":{"type":"boolean","title":"Is Superuser"},"is_verified":{"type":"boolean","title":"Is Verified"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio"},"display_name":{"type":"string","title":"Display Name","description":"显示名称"},"department_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Id","description":"部门ID"},"department_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Name","description":"部门名称"}},"type":"object","required":["email","username","phone","id","tenant_id","is_active","is_superuser","is_verified","created_at","updated_at","last_login_at","avatar_url","bio","display_name"],"title":"User","description":"用户响应模型"},"UserCreate":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password","description":"密码"},"tenant_id":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"scope":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Scope","description":"用户作用域","default":"tenant"},"department_id":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"title":"Department Id","description":"部门ID"},"is_superuser":{"type":"boolean","title":"Is Superuser","description":"是否超级用户","default":false}},"type":"object","required":["email","username","phone","password"],"title":"UserCreate","description":"创建用户模型"},"UserCreateWithCompany":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"邮箱地址"},"username":{"type":"string","maxLength":100,"minLength":3,"title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","maxLength":20,"title":"Phone","description":"手机号"},"password":{"type":"string","maxLength":128,"minLength":8,"title":"Password","description":"密码"},"company_name":{"type":"string","maxLength":200,"minLength":2,"title":"Company Name","description":"企业名称"},"tenant_code":{"type":"string","maxLength":200,"minLength":2,"title":"Tenant Code","description":"企业编码","default":"ede325ee-b976-4f74-9582-d52577f511fc"}},"type":"object","required":["email","username","phone","password","company_name"],"title":"UserCreateWithCompany","description":"创建用户并注册企业模型"},"UserListResponse":{"properties":{"username":{"type":"string","title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name","description":"姓名"},"phone":{"type":"string","title":"Phone","description":"电话"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","description":"企业名称"},"user_type":{"type":"string","title":"User Type","description":"用户类型: system/tenant"},"status":{"type":"string","title":"Status","description":"状态: active/inactive"},"is_superuser":{"type":"boolean","title":"Is Superuser","description":"是否超级用户"},"user_type_str":{"type":"string","title":"User Type Str","description":"用户类型描述"}},"type":"object","required":["username","phone","user_type","status","is_superuser","user_type_str"],"title":"UserListResponse","description":"用户列表响应模型 - 用于系统用户管理接口"},"UserLoginWithCaptcha":{"properties":{"identifier":{"type":"string","title":"Identifier","description":"用户名、邮箱或手机号"},"password":{"type":"string","title":"Password","description":"密码"},"captcha_id":{"type":"string","title":"Captcha Id","description":"验证码ID"},"captcha_text":{"type":"string","maxLength":6,"minLength":4,"title":"Captcha Text","description":"验证码文本"}},"type":"object","required":["identifier","password","captcha_id","captcha_text"],"title":"UserLoginWithCaptcha","description":"带验证码的用户登录模型"},"UserResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","description":"用户ID"},"tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tenant Id","description":"租户ID"},"email":{"type":"string","title":"Email","description":"邮箱地址"},"username":{"type":"string","title":"Username","description":"用户名"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"type":"string","title":"Phone","description":"手机号"},"is_active":{"type":"boolean","title":"Is Active","description":"是否激活"},"is_superuser":{"type":"boolean","title":"Is Superuser","description":"是否超级用户"},"is_verified":{"type":"boolean","title":"Is Verified","description":"是否已验证"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"创建时间"},"updated_at":{"type":"string","format":"date-time","title":"Updated At","description":"更新时间"},"last_login_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Login At","description":"最后登录时间"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url","description":"头像URL"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio","description":"个人简介"},"display_name":{"type":"string","title":"Display Name","description":"显示名称"},"department_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Id","description":"部门ID"},"department_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Department Name","description":"部门名称"},"scope":{"type":"string","title":"Scope","description":"用户作用域"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name","description":"企业名称"}},"type":"object","required":["id","email","username","phone","is_active","is_superuser","is_verified","created_at","updated_at","display_name","scope"],"title":"UserResponse","description":"用户响应模型 - 用于API响应"},"UserRoleAssignRequest":{"properties":{"role_ids":{"items":{"type":"string","format":"uuid"},"type":"array","title":"Role Ids","description":"要分配的角色ID列表"}},"type":"object","required":["role_ids"],"title":"UserRoleAssignRequest","description":"用户角色分配请求模型"},"UserRoleResponse":{"properties":{"user_id":{"type":"string","format":"uuid","title":"User Id","description":"用户ID"},"username":{"type":"string","title":"Username","description":"用户名"},"email":{"type":"string","title":"Email","description":"邮箱"},"full_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Name","description":"全名"},"roles":{"items":{"$ref":"#/components/schemas/Role"},"type":"array","title":"Roles","description":"用户角色列表"},"assigned_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Assigned At","description":"分配时间"}},"type":"object","required":["user_id","username","email"],"title":"UserRoleResponse","description":"用户角色分配响应模型"},"UserUpdate":{"properties":{"email":{"anyOf":[{"type":"string","format":"email"},{"type":"null"}],"title":"Email","description":"邮箱地址"},"full_name":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Full Name","description":"全名"},"phone":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Phone","description":"手机号"},"avatar_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Avatar Url","description":"头像URL"},"bio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bio","description":"个人简介"},"department_id":{"anyOf":[{"type":"string","maxLength":36},{"type":"null"}],"title":"Department Id","description":"部门ID"}},"type":"object","title":"UserUpdate","description":"更新用户模型"},"UserUpdatePassword":{"properties":{"current_password":{"type":"string","title":"Current Password","description":"当前密码"},"new_password":{"type":"string","maxLength":128,"minLength":8,"title":"New Password","description":"新密码"}},"type":"object","required":["current_password","new_password"],"title":"UserUpdatePassword","description":"更新密码模型"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}} \ No newline at end of file diff --git a/crop-x/src/app/(app)/central-config/user/employee/page.tsx b/crop-x/src/app/(app)/central-config/user/employee/page.tsx index 581246b..d173dce 100644 --- a/crop-x/src/app/(app)/central-config/user/employee/page.tsx +++ b/crop-x/src/app/(app)/central-config/user/employee/page.tsx @@ -103,12 +103,8 @@ export default function EmployeeManagementPage() { } catch (error) { console.error('Failed to load employees:', error); toast.error('加载员工数据失败'); - // 如果API失败,使用localStorage中的数据 - const data = localStorage.getItem('smart_agriculture_employees'); - if (data) { - setEmployees(JSON.parse(data)); - } + setEmployees([]); } finally { setLoading(false); } diff --git a/crop-x/src/app/(app)/central-config/user/role/components/RoleList.tsx b/crop-x/src/app/(app)/central-config/user/role/components/RoleList.tsx index 2de936a..b1c9513 100644 --- a/crop-x/src/app/(app)/central-config/user/role/components/RoleList.tsx +++ b/crop-x/src/app/(app)/central-config/user/role/components/RoleList.tsx @@ -7,9 +7,14 @@ import { Badge } from '@/components/ui/badge'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; import { Eye, Edit, Trash2, Shield } from 'lucide-react'; import { Role, RoleType } from '../types'; +import { PaginationState } from './roleApi'; interface RoleListProps { roles: Role[]; + loading?: boolean; + pagination?: PaginationState; + onPageChange?: (page: number) => void; + onPageSizeChange?: (size: number) => void; onViewDetail: (role: Role) => void; onEdit: (role: Role) => void; onDelete: (id: string) => void; @@ -17,6 +22,10 @@ interface RoleListProps { export function RoleList({ roles, + loading = false, + pagination, + onPageChange, + onPageSizeChange, onViewDetail, onEdit, onDelete @@ -52,7 +61,13 @@ export function RoleList({ - {roles.length === 0 ? ( + {loading ? ( + + + 加载中... + + + ) : roles.length === 0 ? ( 暂无数据 @@ -108,6 +123,63 @@ export function RoleList({ )} + + {/* 分页控制 */} + {!loading && pagination && pagination.totalPages > 1 && ( +
+
+ 显示第 {(pagination.page - 1) * pagination.size + 1} 至 {Math.min(pagination.page * pagination.size, pagination.total)} 条,共 {pagination.total} 条 +
+
+ + +
+ {Array.from({ length: pagination.totalPages }, (_, i) => i + 1).map((pageNum) => ( + + ))} +
+ + + + {onPageSizeChange && ( + <> + + 条/页 + + )} +
+
+ )} ); } \ No newline at end of file diff --git a/crop-x/src/app/(app)/central-config/user/role/components/roleApi.ts b/crop-x/src/app/(app)/central-config/user/role/components/roleApi.ts new file mode 100644 index 0000000..376e68d --- /dev/null +++ b/crop-x/src/app/(app)/central-config/user/role/components/roleApi.ts @@ -0,0 +1,143 @@ +/** + * filekorolheader: 角色管理API接口 - 角色数据查询接口服务 + * 功能:API请求封装、数据转换、错误处理、分页查询 + * 路径:/central-config/user/role/components/roleApi + * 规范:遵循crop-x/docs/开发项目规范.md,使用SDK API调用,TypeScript类型安全 + */ + +import { getAuthToken } from "@/utils/token"; +import { + getRolesApiV1UsersPermissionsRolesGet, +} from "@/lib/api/sdk.gen"; +import { + RoleApiData, + Role, +} from '../types'; + +// 本地定义PaginationState以避免导入问题 +export interface PaginationState { + page: number; + size: number; + total: number; + totalPages: number; + hasNext: boolean; + hasPrev: boolean; +} + +// Re-export types from types.ts for convenience +export type { RolesApiResponse, RolesQueryParams } from '../types'; + +/** + * 获取角色列表数据 + */ +export async function fetchRoles(params: RolesQueryParams = {}): Promise { + try { + // 构建查询参数对象 + const queryParams: any = {}; + + if (params.page) queryParams.page = params.page; + if (params.size) queryParams.size = params.size; + if (params.sort_order) queryParams.sort_order = params.sort_order; + + // 默认参数 + if (!params.page) queryParams.page = 1; + if (!params.size) queryParams.size = 10; + if (!params.sort_order) queryParams.sort_order = 'desc'; + + // 获取认证token + const token = getAuthToken(); + console.log('角色管理API调用参数:', queryParams); + + // 使用真正的SDK API调用 + const response = await getRolesApiV1UsersPermissionsRolesGet({ + query: { + ...queryParams, + // 添加时间戳防止缓存 + _t: Date.now(), + }, + headers: token ? { + 'Authorization': `Bearer ${token}`, + } : undefined, + }); + + if (response.error) { + throw new Error(`API error: ${response.error.message || 'Unknown error'}`); + } + + const data = response.data as any; + console.log('角色管理API响应:', data); + + // 处理API响应数据 + if (data && typeof data === 'object' && data.data) { + return { + data: data.data || [], + total: data.total || 0, + page: data.page || 1, + size: data.size || 10, + total_pages: data.total_pages || 0, + has_next: data.has_next || false, + has_prev: data.has_prev || false, + }; + } else { + // 其他情况,返回空结果 + return { + data: [], + total: 0, + page: 1, + size: 10, + total_pages: 0, + has_next: false, + has_prev: false, + }; + } + } catch (error) { + console.error('Failed to fetch roles:', error); + throw error; + } +} + +/** + * 将API数据转换为页面所需的角色数据格式 + * 为了保持兼容性,这里转换数据格式 + */ +export function transformRoleData(apiRole: RoleApiData): Role { + return { + id: apiRole.id, + name: apiRole.name, + code: apiRole.name.toLowerCase().replace(/\s+/g, '_'), // 生成code + description: apiRole.description, + type: 'custom', // 默认为自定义角色 + menuIds: [], + permissionIds: [], + status: 'active', + createdAt: apiRole.created_at, + updatedAt: apiRole.updated_at, + tenant_id: apiRole.tenant_id, + }; +} + +/** + * 批量转换角色数据 + */ +export function transformRolesList(apiRoles: RoleApiData[]): Role[] { + return apiRoles.map(transformRoleData); +} + +/** + * 格式化日期 + */ +export function formatDate(dateString: string): string { + try { + const date = new Date(dateString); + return date.toLocaleString('zh-CN', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit', + }).replace(/\//g, '-'); + } catch (error) { + return dateString; + } +} + diff --git a/crop-x/src/app/(app)/central-config/user/role/page.tsx b/crop-x/src/app/(app)/central-config/user/role/page.tsx index df3e50a..87e7c82 100644 --- a/crop-x/src/app/(app)/central-config/user/role/page.tsx +++ b/crop-x/src/app/(app)/central-config/user/role/page.tsx @@ -1,3 +1,10 @@ +/** + * filekorolheader: 角色管理页面 - 系统角色访问控制管理 + * 功能:角色列表管理、API数据加载、分页查询、角色搜索、详情查看 + * 路径:/central-config/user/role + * 规范:遵循crop-x/docs/开发项目规范.md,使用API调用,shadcn语义化样式,支持翻页 + */ + 'use client'; import { useState, useEffect } from 'react'; @@ -10,11 +17,29 @@ import { RoleList } from './components/RoleList'; import { RoleFormDialog } from './components/RoleFormDialog'; import { RoleDetailDialog } from './components/RoleDetailDialog'; import { RoleManagementInstructions } from './components/RoleManagementInstructions'; -import { Role, RoleFormData } from './types'; +import { Role, RoleFormData, RoleFilters } from './types'; +import { + fetchRoles, + transformRolesList, + RolesApiResponse, + RolesQueryParams, + PaginationState +} from './components/roleApi'; export default function RoleManagementPage() { const [roles, setRoles] = useState([]); - const [searchKeyword, setSearchKeyword] = useState(''); + const [loading, setLoading] = useState(false); + const [pagination, setPagination] = useState({ + page: 1, + size: 10, + total: 0, + totalPages: 0, + hasNext: false, + hasPrev: false, + }); + const [filters, setFilters] = useState({ + searchKeyword: '' + }); const [showForm, setShowForm] = useState(false); const [showDetailDialog, setShowDetailDialog] = useState(false); const [editingRole, setEditingRole] = useState(null); @@ -28,75 +53,67 @@ export default function RoleManagementPage() { useEffect(() => { loadRoles(); - }, []); + }, [pagination.page, pagination.size, filters.searchKeyword]); - const loadRoles = () => { - const data = localStorage.getItem('smart_agriculture_roles'); - if (data) { - setRoles(JSON.parse(data)); - } else { - const mockRoles: Role[] = [ - { - id: 'role-1', - name: '超级管理员', - code: 'super_admin', - description: '系统最高权限,可管理所有功能和数据', - type: 'system', - menuIds: ['*'], - permissionIds: ['*'], - status: 'active', - createdAt: '2024-01-01T00:00:00', - updatedAt: '2024-01-01T00:00:00', - }, - { - id: 'role-2', - name: '企业管理员', - code: 'enterprise_admin', - description: '企业管理员,可管理本企业的员工和数据', - type: 'system', - menuIds: ['config-user', 'machinery', 'field'], - permissionIds: ['user:view', 'user:add', 'user:edit', 'machinery:*'], - defaultHomePage: '/machinery/archive/entry', - status: 'active', - createdAt: '2024-01-01T00:00:00', - updatedAt: '2024-01-01T00:00:00', - }, - { - id: 'role-3', - name: '操作员', - code: 'operator', - description: '一般操作员,可查看和操作农机设备', - type: 'system', - menuIds: ['machinery', 'field'], - permissionIds: ['machinery:view', 'machinery:control', 'field:view'], - defaultHomePage: '/machinery/monitoring/location', - status: 'active', - createdAt: '2024-01-01T00:00:00', - updatedAt: '2024-01-01T00:00:00', - }, - { - id: 'role-4', - name: '维修员', - code: 'maintenance', - description: '农机维修人员,负责设备维护和故障诊断', - type: 'custom', - menuIds: ['machinery-fault', 'machinery-archive'], - permissionIds: ['machinery:view', 'fault:view', 'fault:handle'], - status: 'active', - createdAt: '2024-10-01T00:00:00', - updatedAt: '2024-10-01T00:00:00', - }, - ]; - localStorage.setItem('smart_agriculture_roles', JSON.stringify(mockRoles)); - setRoles(mockRoles); + const loadRoles = async () => { + setLoading(true); + try { + const queryParams: RolesQueryParams = { + page: pagination.page, + size: pagination.size, + sort_order: 'desc' + }; + + const response = await fetchRoles(queryParams); + + // 转换数据格式 + const transformedRoles = transformRolesList(response.data); + + setRoles(transformedRoles); + setPagination({ + page: response.page, + size: response.size, + total: response.total, + totalPages: response.total_pages, + hasNext: response.has_next, + hasPrev: response.has_prev, + }); + } catch (error) { + console.error('Failed to load roles:', error); + toast.error('加载角色数据失败'); + + // 如果API失败,使用localStorage中的数据作为fallback + const data = localStorage.getItem('smart_agriculture_roles'); + if (data) { + setRoles(JSON.parse(data)); + } + } finally { + setLoading(false); } }; + // 搜索处理函数 + const handleSearch = (searchKeyword: string) => { + setFilters(prev => ({ ...prev, searchKeyword })); + // 重置到第一页 + setPagination(prev => ({ ...prev, page: 1 })); + }; + + // 分页处理函数 + const handlePageChange = (page: number) => { + setPagination(prev => ({ ...prev, page })); + }; + + const handlePageSizeChange = (size: number) => { + setPagination(prev => ({ ...prev, size, page: 1 })); + }; + + // 过滤角色数据(客户端过滤,用于搜索) const filteredRoles = roles.filter(role => { - const matchKeyword = !searchKeyword || - role.name.includes(searchKeyword) || - role.code.includes(searchKeyword) || - (role.description && role.description.includes(searchKeyword)); + const matchKeyword = !filters.searchKeyword || + role.name.includes(filters.searchKeyword) || + role.code.includes(filters.searchKeyword) || + (role.description && role.description.includes(filters.searchKeyword)); return matchKeyword; }); @@ -183,13 +200,17 @@ export default function RoleManagementPage() { {/* 搜索 */} {/* 角色列表 */} { - try { - const storedUser = localStorage.getItem('user'); - const user = storedUser ? JSON.parse(storedUser) : null; - return user?.token || null; - } catch (error) { - console.error('获取token失败:', error); - return null; - } -}; - -// 创建带认证的客户端选项 -const createAuthenticatedOptions = ( - originalOptions: Options = {} as Options -): Options => { - const token = getAuthToken(); - - const authenticatedOptions: Options = { - ...originalOptions, - client: client - }; - - // 如果有token,添加到请求头 - if (token) { - authenticatedOptions.headers = { - ...originalOptions.headers, - Authorization: `Bearer ${token}` - }; - console.log('🔑 为API请求添加Token:', (originalOptions as any).url || 'unknown endpoint'); - } else { - console.log('🚫 无Token,API请求可能未授权:', (originalOptions as any).url || 'unknown endpoint'); - } - - return authenticatedOptions; -}; - -// 包装所有API方法,自动添加认证 -export const authenticatedSdk = { - // 认证相关 - getCaptcha: (options?: Options) => api.getCaptchaApiV1AuthCaptchaGet(options), - login: (options: Options) => api.loginApiV1AuthLoginPost(options), - logout: (options?: Options) => api.logoutApiV1AuthLogoutPost(createAuthenticatedOptions(options)), - getCurrentUser: (options?: Options) => api.getCurrentUserInfoApiV1AuthMeGet(createAuthenticatedOptions(options)), - refreshToken: (options?: Options) => api.refreshTokenApiV1AuthRefreshPost(createAuthenticatedOptions(options)), - - // 用户管理 - getUsers: (options?: Options) => api.getUsersApiV1UsersGet(createAuthenticatedOptions(options)), - getUser: (options: Options) => api.getUserApiV1UsersUserIdGet(createAuthenticatedOptions(options)), - createUser: (options: Options) => api.createUserApiV1UsersPost(createAuthenticatedOptions(options)), - updateUser: (options: Options) => api.updateUserApiV1UsersUserIdPut(createAuthenticatedOptions(options)), - deleteUser: (options: Options) => api.deleteUserApiV1UsersUserIdDelete(createAuthenticatedOptions(options)), - - // 系统用户管理 - getSystemUsers: (options?: Options) => api.listSystemUsersApiV1UsersSystemUsersGet(createAuthenticatedOptions(options)), - getSystemUser: (options: Options) => api.getSystemUserApiV1UsersSystemUsersUserIdGet(createAuthenticatedOptions(options)), - createSystemUser: (options: Options) => api.createSystemUserApiV1UsersSystemUsersPost(createAuthenticatedOptions(options)), - updateSystemUser: (options: Options) => api.updateSystemUserApiV1UsersSystemUsersUserIdPut(createAuthenticatedOptions(options)), - deleteSystemUser: (options: Options) => api.deleteSystemUserApiV1UsersSystemUsersUserIdDelete(createAuthenticatedOptions(options)), - - // 部门管理 - getDepartments: (options?: Options) => api.getDepartmentsApiV1DepartmentsDepartmentsGet(createAuthenticatedOptions(options)), - getDepartment: (options: Options) => api.getDepartmentApiV1DepartmentsDepartmentsDepartmentIdGet(createAuthenticatedOptions(options)), - createDepartment: (options: Options) => api.createDepartmentApiV1DepartmentsDepartmentsPost(createAuthenticatedOptions(options)), - updateDepartment: (options: Options) => api.updateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPut(createAuthenticatedOptions(options)), - deleteDepartment: (options: Options) => api.deleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDelete(createAuthenticatedOptions(options)), - getDepartmentTree: (options?: Options) => api.getDepartmentTreeApiV1DepartmentsDepartmentsTreeGet(createAuthenticatedOptions(options)), - - // 租户管理 - getTenants: (options?: Options) => api.listTenantsApiV1TenantsGet(createAuthenticatedOptions(options)), - getTenant: (options: Options) => api.getTenantApiV1TenantsTenantIdGet(createAuthenticatedOptions(options)), - createTenant: (options: Options) => api.createTenantApiV1TenantsPost(createAuthenticatedOptions(options)), - updateTenant: (options: Options) => api.updateTenantApiV1TenantsTenantIdPut(createAuthenticatedOptions(options)), - deleteTenant: (options: Options) => api.deleteTenantApiV1TenantsTenantIdDelete(createAuthenticatedOptions(options)), - getCurrentTenant: (options?: Options) => api.getCurrentTenantApiV1TenantsMeGet(createAuthenticatedOptions(options)), - - // 消息管理 - sendMessage: (options: Options) => api.sendMessageApiV1MessagesSendPost(createAuthenticatedOptions(options)), - scheduleMessage: (options: Options) => api.scheduleMessageApiV1MessagesSchedulePost(createAuthenticatedOptions(options)), - getMessageLogs: (options?: Options) => api.listMessageLogsApiV1MessagesLogsMessageLogsGet(createAuthenticatedOptions(options)), - getMessageReceipts: (options: Options) => api.getMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGet(createAuthenticatedOptions(options)), - - // 系统信息 - getSystemInfo: (options?: Options) => api.getSystemInfoApiV1SystemInfoGet(createAuthenticatedOptions(options)), - getSystemStats: (options?: Options) => api.getSystemStatsApiV1SystemStatsGet(createAuthenticatedOptions(options)), - getSystemMetrics: (options?: Options) => api.getSystemMetricsApiV1SystemMetricsGet(createAuthenticatedOptions(options)), - healthCheck: (options?: Options) => api.healthCheckApiV1HealthGet(createAuthenticatedOptions(options)), - - // 日志管理 - getLoginLogs: (options?: Options) => api.getLoginLogsApiV1LogsLogsLoginGet(createAuthenticatedOptions(options)), - getOperationLogs: (options?: Options) => api.getOperationLogsApiV1LogsLogsOperationGet(createAuthenticatedOptions(options)), - getNetworkLogs: (options?: Options) => api.getNetworkLogsApiV1LogsLogsNetworkGet(createAuthenticatedOptions(options)), -}; - -// 导出原始API以供特殊情况使用(如登录) -export { api }; - -// 导出类型 -export type { Options }; \ No newline at end of file diff --git a/crop-x/src/lib/api/client.gen.ts b/crop-x/src/lib/api/client.gen.ts index 9a6e01e..41ab081 100644 --- a/crop-x/src/lib/api/client.gen.ts +++ b/crop-x/src/lib/api/client.gen.ts @@ -14,5 +14,6 @@ import type { ClientOptions as ClientOptions2 } from './types.gen'; export type CreateClientConfig = (override?: Config) => Config & T>; export const client = createClient(createConfig({ - baseUrl: '' // 使用相对路径,通过 Next.js 代理到真实 API + // 在浏览器环境中使用相对路径(通过Next.js代理),在服务器端使用完整URL + baseUrl: typeof window !== 'undefined' ? '' : 'https://gitea-admin-hm-smart-agri-app.dev.maimaiag.com' })); diff --git a/crop-x/src/lib/api/config.ts b/crop-x/src/lib/api/config.ts deleted file mode 100644 index fb4f8d5..0000000 --- a/crop-x/src/lib/api/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -/** - * filekorolheader: API配置文件 - API客户端配置和认证处理 - * 功能:API基础配置、认证头部处理、错误处理 - * 路径:/lib/api/config - * 规范:遵循crop-x/docs/开发项目规范.md,统一API调用配置 - */ - -import { getAuthToken } from '@/utils/token'; - -// API基础URL配置 - 开发环境直接使用真实API地址避免重定向问题 -export const API_BASE_URL = 'https://gitea-admin-hm-smart-agri-app.dev.maimaiag.com'; - -// 获取认证头部 -export const getAuthHeaders = () => { - const token = getAuthToken(); - const headers: Record = { - 'Content-Type': 'application/json', - 'Accept': 'application/json', - // 添加缓存控制头部 - 'Cache-Control': 'no-store, no-cache, must-revalidate', - 'Pragma': 'no-cache', - 'Expires': '0', - }; - - if (token) { - headers['Authorization'] = `Bearer ${token}`; - } - - return headers; -}; - -// API请求配置 -export const apiConfig = { - baseURL: API_BASE_URL, - timeout: 30000, // 30秒超时 - headers: getAuthHeaders(), -}; \ No newline at end of file diff --git a/crop-x/src/lib/api/sdk.gen.ts b/crop-x/src/lib/api/sdk.gen.ts index e0daf37..1f88968 100644 --- a/crop-x/src/lib/api/sdk.gen.ts +++ b/crop-x/src/lib/api/sdk.gen.ts @@ -2,7 +2,7 @@ import type { Client, Options as Options2, TDataShape } from './client'; import { client } from './client.gen'; -import type { ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostData, ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostErrors, ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostResponses, ActivateUserApiV1UsersUserIdActivatePostData, ActivateUserApiV1UsersUserIdActivatePostErrors, ActivateUserApiV1UsersUserIdActivatePostResponses, AuditTenantApiV1TenantsTenantIdAuditPostData, AuditTenantApiV1TenantsTenantIdAuditPostErrors, AuditTenantApiV1TenantsTenantIdAuditPostResponses, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteData, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteErrors, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteResponses, ChangePasswordApiV1AuthChangePasswordPostData, ChangePasswordApiV1AuthChangePasswordPostErrors, ChangePasswordApiV1AuthChangePasswordPostResponses, CreateDepartmentApiV1DepartmentsDepartmentsPostData, CreateDepartmentApiV1DepartmentsDepartmentsPostErrors, CreateDepartmentApiV1DepartmentsDepartmentsPostResponses, CreateSystemUserApiV1UsersSystemUsersPostData, CreateSystemUserApiV1UsersSystemUsersPostErrors, CreateSystemUserApiV1UsersSystemUsersPostResponses, CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostData, CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostErrors, CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostResponses, CreateTenantApiV1TenantsPostData, CreateTenantApiV1TenantsPostErrors, CreateTenantApiV1TenantsPostResponses, CreateUserApiV1UsersPostData, CreateUserApiV1UsersPostErrors, CreateUserApiV1UsersPostResponses, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostData, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostErrors, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostResponses, DeactivateUserApiV1UsersUserIdDeactivatePostData, DeactivateUserApiV1UsersUserIdDeactivatePostErrors, DeactivateUserApiV1UsersUserIdDeactivatePostResponses, DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteData, DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteErrors, DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteResponses, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteData, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteErrors, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteResponses, DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteData, DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteErrors, DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteResponses, DeleteTenantApiV1TenantsTenantIdDeleteData, DeleteTenantApiV1TenantsTenantIdDeleteErrors, DeleteTenantApiV1TenantsTenantIdDeleteResponses, DeleteUserApiV1UsersUserIdDeleteData, DeleteUserApiV1UsersUserIdDeleteErrors, DeleteUserApiV1UsersUserIdDeleteResponses, DetailedHealthCheckApiV1HealthDetailedGetData, DetailedHealthCheckApiV1HealthDetailedGetResponses, DisableTenantApiV1TenantsTenantIdDisablePatchData, DisableTenantApiV1TenantsTenantIdDisablePatchErrors, DisableTenantApiV1TenantsTenantIdDisablePatchResponses, EnableTenantApiV1TenantsTenantIdEnablePatchData, EnableTenantApiV1TenantsTenantIdEnablePatchErrors, EnableTenantApiV1TenantsTenantIdEnablePatchResponses, GetCaptchaApiV1AuthCaptchaGetData, GetCaptchaApiV1AuthCaptchaGetResponses, GetCurrentTenantApiV1TenantsMeGetData, GetCurrentTenantApiV1TenantsMeGetResponses, GetCurrentUserInfoApiV1AuthMeGetData, GetCurrentUserInfoApiV1AuthMeGetResponses, GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetData, GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetErrors, GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetResponses, GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetData, GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses, GetDepartmentsApiV1DepartmentsDepartmentsGetData, GetDepartmentsApiV1DepartmentsDepartmentsGetErrors, GetDepartmentsApiV1DepartmentsDepartmentsGetResponses, GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetData, GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetResponses, GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetData, GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetErrors, GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetResponses, GetLoginLogApiV1LogsLogsLoginLogIdGetData, GetLoginLogApiV1LogsLogsLoginLogIdGetErrors, GetLoginLogApiV1LogsLogsLoginLogIdGetResponses, GetLoginLogsApiV1LogsLogsLoginGetData, GetLoginLogsApiV1LogsLogsLoginGetErrors, GetLoginLogsApiV1LogsLogsLoginGetResponses, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetData, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetErrors, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetResponses, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetData, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetErrors, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetResponses, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetData, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetErrors, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetResponses, GetNetworkLogApiV1LogsLogsNetworkLogIdGetData, GetNetworkLogApiV1LogsLogsNetworkLogIdGetErrors, GetNetworkLogApiV1LogsLogsNetworkLogIdGetResponses, GetNetworkLogsApiV1LogsLogsNetworkGetData, GetNetworkLogsApiV1LogsLogsNetworkGetErrors, GetNetworkLogsApiV1LogsLogsNetworkGetResponses, GetOperationLogApiV1LogsLogsOperationLogIdGetData, GetOperationLogApiV1LogsLogsOperationLogIdGetErrors, GetOperationLogApiV1LogsLogsOperationLogIdGetResponses, GetOperationLogsApiV1LogsLogsOperationGetData, GetOperationLogsApiV1LogsLogsOperationGetErrors, GetOperationLogsApiV1LogsLogsOperationGetResponses, GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetData, GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetResponses, GetPerformanceSummaryApiV1SystemMetricsSummaryGetData, GetPerformanceSummaryApiV1SystemMetricsSummaryGetResponses, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetData, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetErrors, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetResponses, GetSystemConfigApiV1SystemConfigGetData, GetSystemConfigApiV1SystemConfigGetResponses, GetSystemInfoApiV1SystemInfoGetData, GetSystemInfoApiV1SystemInfoGetResponses, GetSystemMetricsApiV1SystemMetricsGetData, GetSystemMetricsApiV1SystemMetricsGetErrors, GetSystemMetricsApiV1SystemMetricsGetResponses, GetSystemStatsApiV1SystemStatsGetData, GetSystemStatsApiV1SystemStatsGetResponses, GetSystemUserApiV1UsersSystemUsersUserIdGetData, GetSystemUserApiV1UsersSystemUsersUserIdGetErrors, GetSystemUserApiV1UsersSystemUsersUserIdGetResponses, GetSystemUserStatsApiV1UsersSystemUsersStatsSummaryGetData, GetSystemUserStatsApiV1UsersSystemUsersStatsSummaryGetResponses, GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetData, GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetErrors, GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetResponses, GetTenantApiV1TenantsTenantIdGetData, GetTenantApiV1TenantsTenantIdGetErrors, GetTenantApiV1TenantsTenantIdGetResponses, GetTenantAuditLogsApiV1TenantsAuditLogsGetData, GetTenantAuditLogsApiV1TenantsAuditLogsGetErrors, GetTenantAuditLogsApiV1TenantsAuditLogsGetResponses, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetData, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetErrors, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetResponses, GetUserApiV1UsersUserIdGetData, GetUserApiV1UsersUserIdGetErrors, GetUserApiV1UsersUserIdGetResponses, GetUsersApiV1UsersGetData, GetUsersApiV1UsersGetErrors, GetUsersApiV1UsersGetResponses, GetUserStatsApiV1UsersStatsSummaryGetData, GetUserStatsApiV1UsersStatsSummaryGetResponses, HealthCheckApiV1HealthGetData, HealthCheckApiV1HealthGetResponses, HealthCheckHealthGetData, HealthCheckHealthGetResponses, ListAnonymousTenantsApiV1TenantsAnonymousListGetData, ListAnonymousTenantsApiV1TenantsAnonymousListGetErrors, ListAnonymousTenantsApiV1TenantsAnonymousListGetResponses, ListMessageLogsApiV1MessagesLogsMessageLogsGetData, ListMessageLogsApiV1MessagesLogsMessageLogsGetErrors, ListMessageLogsApiV1MessagesLogsMessageLogsGetResponses, ListSystemUsersApiV1UsersSystemUsersGetData, ListSystemUsersApiV1UsersSystemUsersGetErrors, ListSystemUsersApiV1UsersSystemUsersGetResponses, ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetData, ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetErrors, ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetResponses, ListTenantsApiV1TenantsGetData, ListTenantsApiV1TenantsGetErrors, ListTenantsApiV1TenantsGetResponses, LoginApiV1AuthLoginPostData, LoginApiV1AuthLoginPostErrors, LoginApiV1AuthLoginPostResponses, LogoutApiV1AuthLogoutPostData, LogoutApiV1AuthLogoutPostResponses, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostData, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostErrors, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostResponses, RefreshTokenApiV1AuthRefreshPostData, RefreshTokenApiV1AuthRefreshPostResponses, RegisterApiV1AuthRegisterPostData, RegisterApiV1AuthRegisterPostErrors, RegisterApiV1AuthRegisterPostResponses, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostData, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostErrors, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostResponses, RetryFailedMessageApiV1MessagesMessageIdRetryPostData, RetryFailedMessageApiV1MessagesMessageIdRetryPostErrors, RetryFailedMessageApiV1MessagesMessageIdRetryPostResponses, ScheduleMessageApiV1MessagesSchedulePostData, ScheduleMessageApiV1MessagesSchedulePostErrors, ScheduleMessageApiV1MessagesSchedulePostResponses, SendMessageApiV1MessagesSendPostData, SendMessageApiV1MessagesSendPostErrors, SendMessageApiV1MessagesSendPostResponses, SubmitTenantAuditApiV1TenantsSubmitPostData, SubmitTenantAuditApiV1TenantsSubmitPostErrors, SubmitTenantAuditApiV1TenantsSubmitPostResponses, TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostData, TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostErrors, TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostResponses, UpdateCurrentUserApiV1AuthMePutData, UpdateCurrentUserApiV1AuthMePutErrors, UpdateCurrentUserApiV1AuthMePutResponses, UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutData, UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutErrors, UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutResponses, UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchData, UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchErrors, UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchResponses, UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchData, UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchErrors, UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchResponses, UpdateSystemUserApiV1UsersSystemUsersUserIdPutData, UpdateSystemUserApiV1UsersSystemUsersUserIdPutErrors, UpdateSystemUserApiV1UsersSystemUsersUserIdPutResponses, UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutData, UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutErrors, UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutResponses, UpdateUserApiV1UsersUserIdPutData, UpdateUserApiV1UsersUserIdPutErrors, UpdateUserApiV1UsersUserIdPutResponses, VerifyUserTokenApiV1AuthVerifyTokenPostData, VerifyUserTokenApiV1AuthVerifyTokenPostResponses } from './types.gen'; +import type { ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostData, ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostErrors, ActivateSystemUserApiV1UsersSystemUsersUserIdActivatePostResponses, ActivateUserApiV1UsersUserIdActivatePostData, ActivateUserApiV1UsersUserIdActivatePostErrors, ActivateUserApiV1UsersUserIdActivatePostResponses, AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostData, AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostErrors, AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostResponses, AuditTenantApiV1TenantsTenantIdAuditPostData, AuditTenantApiV1TenantsTenantIdAuditPostErrors, AuditTenantApiV1TenantsTenantIdAuditPostResponses, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteData, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteErrors, CancelScheduledMessageApiV1MessagesMessageIdCancelDeleteResponses, ChangePasswordApiV1AuthChangePasswordPostData, ChangePasswordApiV1AuthChangePasswordPostErrors, ChangePasswordApiV1AuthChangePasswordPostResponses, CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostData, CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostErrors, CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostResponses, CleanupOldLogsApiV1LogsQueryCleanupPostData, CleanupOldLogsApiV1LogsQueryCleanupPostErrors, CleanupOldLogsApiV1LogsQueryCleanupPostResponses, CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostData, CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostErrors, CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostResponses, CreateDepartmentApiV1DepartmentsPostData, CreateDepartmentApiV1DepartmentsPostErrors, CreateDepartmentApiV1DepartmentsPostResponses, CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostData, CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostErrors, CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostResponses, CreateRoleApiV1UsersPermissionsRolesPostData, CreateRoleApiV1UsersPermissionsRolesPostErrors, CreateRoleApiV1UsersPermissionsRolesPostResponses, CreateSystemUserApiV1UsersSystemUsersPostData, CreateSystemUserApiV1UsersSystemUsersPostErrors, CreateSystemUserApiV1UsersSystemUsersPostResponses, CreateTemplateApiV1MessagesTemplatesPostData, CreateTemplateApiV1MessagesTemplatesPostErrors, CreateTemplateApiV1MessagesTemplatesPostResponses, CreateTenantApiV1TenantsPostData, CreateTenantApiV1TenantsPostErrors, CreateTenantApiV1TenantsPostResponses, CreateUserApiV1UsersPostData, CreateUserApiV1UsersPostErrors, CreateUserApiV1UsersPostResponses, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostData, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostErrors, DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostResponses, DeactivateUserApiV1UsersUserIdDeactivatePostData, DeactivateUserApiV1UsersUserIdDeactivatePostErrors, DeactivateUserApiV1UsersUserIdDeactivatePostResponses, DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteData, DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteErrors, DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteResponses, DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteData, DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteErrors, DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteResponses, DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteData, DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteErrors, DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteResponses, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteData, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteErrors, DeleteSystemUserApiV1UsersSystemUsersUserIdDeleteResponses, DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteData, DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteErrors, DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteResponses, DeleteTenantApiV1TenantsTenantIdDeleteData, DeleteTenantApiV1TenantsTenantIdDeleteErrors, DeleteTenantApiV1TenantsTenantIdDeleteResponses, DeleteUserApiV1UsersUserIdDeleteData, DeleteUserApiV1UsersUserIdDeleteErrors, DeleteUserApiV1UsersUserIdDeleteResponses, DetailedHealthCheckApiV1HealthDetailedGetData, DetailedHealthCheckApiV1HealthDetailedGetResponses, DisableTenantApiV1TenantsTenantIdDisablePatchData, DisableTenantApiV1TenantsTenantIdDisablePatchErrors, DisableTenantApiV1TenantsTenantIdDisablePatchResponses, EnableTenantApiV1TenantsTenantIdEnablePatchData, EnableTenantApiV1TenantsTenantIdEnablePatchErrors, EnableTenantApiV1TenantsTenantIdEnablePatchResponses, ExportLoginLogsApiV1LogsLoginLoginLogsExportGetData, ExportLoginLogsApiV1LogsLoginLoginLogsExportGetErrors, ExportLoginLogsApiV1LogsLoginLoginLogsExportGetResponses, ExportLogsApiV1LogsQueryLogTypeExportPostData, ExportLogsApiV1LogsQueryLogTypeExportPostErrors, ExportLogsApiV1LogsQueryLogTypeExportPostResponses, ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetData, ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetErrors, ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetResponses, ExportOperationLogsApiV1LogsOperationOperationLogsExportGetData, ExportOperationLogsApiV1LogsOperationOperationLogsExportGetErrors, ExportOperationLogsApiV1LogsOperationOperationLogsExportGetResponses, GetCaptchaApiV1AuthCaptchaGetData, GetCaptchaApiV1AuthCaptchaGetResponses, GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetData, GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetErrors, GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetResponses, GetCurrentTenantApiV1TenantsMeGetData, GetCurrentTenantApiV1TenantsMeGetResponses, GetCurrentUserInfoApiV1AuthMeGetData, GetCurrentUserInfoApiV1AuthMeGetResponses, GetDepartmentApiV1DepartmentsDepartmentIdGetData, GetDepartmentApiV1DepartmentsDepartmentIdGetErrors, GetDepartmentApiV1DepartmentsDepartmentIdGetResponses, GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetData, GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses, GetDepartmentsApiV1DepartmentsGetData, GetDepartmentsApiV1DepartmentsGetErrors, GetDepartmentsApiV1DepartmentsGetResponses, GetDepartmentTreeApiV1DepartmentsTreeGetData, GetDepartmentTreeApiV1DepartmentsTreeGetResponses, GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetData, GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetErrors, GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetResponses, GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetData, GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetErrors, GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetResponses, GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetData, GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetErrors, GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetResponses, GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetData, GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetErrors, GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetResponses, GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetData, GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetErrors, GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetResponses, GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetData, GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetErrors, GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetResponses, GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetData, GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetErrors, GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetResponses, GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetData, GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetErrors, GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetResponses, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetData, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetErrors, GetMessageLogApiV1MessagesLogsMessageLogsMessageIdGetResponses, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetData, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetErrors, GetMessageReceiptsApiV1MessagesLogsMessageLogsMessageIdReceiptsGetResponses, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetData, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetErrors, GetMessageStatisticsApiV1MessagesLogsMessageLogsStatisticsOverviewGetResponses, GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetData, GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetErrors, GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetResponses, GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetData, GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetErrors, GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetResponses, GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetData, GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetErrors, GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetResponses, GetPerformanceSummaryApiV1SystemMetricsSummaryGetData, GetPerformanceSummaryApiV1SystemMetricsSummaryGetResponses, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetData, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetErrors, GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipientRecipientGetResponses, GetRoleApiV1UsersPermissionsRolesRoleIdGetData, GetRoleApiV1UsersPermissionsRolesRoleIdGetErrors, GetRoleApiV1UsersPermissionsRolesRoleIdGetResponses, GetRolesApiV1UsersPermissionsRolesGetData, GetRolesApiV1UsersPermissionsRolesGetErrors, GetRolesApiV1UsersPermissionsRolesGetResponses, GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetData, GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetErrors, GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetResponses, GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetData, GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetErrors, GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetResponses, GetSystemConfigApiV1SystemConfigGetData, GetSystemConfigApiV1SystemConfigGetResponses, GetSystemInfoApiV1SystemInfoGetData, GetSystemInfoApiV1SystemInfoGetResponses, GetSystemMetricsApiV1SystemMetricsGetData, GetSystemMetricsApiV1SystemMetricsGetErrors, GetSystemMetricsApiV1SystemMetricsGetResponses, GetSystemPermissionsApiV1UsersPermissionsPermissionsGetData, GetSystemPermissionsApiV1UsersPermissionsPermissionsGetErrors, GetSystemPermissionsApiV1UsersPermissionsPermissionsGetResponses, GetSystemStatsApiV1SystemStatsGetData, GetSystemStatsApiV1SystemStatsGetResponses, GetSystemUserApiV1UsersSystemUsersUserIdGetData, GetSystemUserApiV1UsersSystemUsersUserIdGetErrors, GetSystemUserApiV1UsersSystemUsersUserIdGetResponses, GetSystemUserStatsApiV1UsersSystemUsersStatsSummaryGetData, GetSystemUserStatsApiV1UsersSystemUsersStatsSummaryGetResponses, GetTemplateApiV1MessagesTemplatesTemplateIdGetData, GetTemplateApiV1MessagesTemplatesTemplateIdGetErrors, GetTemplateApiV1MessagesTemplatesTemplateIdGetResponses, GetTenantApiV1TenantsTenantIdGetData, GetTenantApiV1TenantsTenantIdGetErrors, GetTenantApiV1TenantsTenantIdGetResponses, GetTenantAuditLogsApiV1TenantsAuditLogsGetData, GetTenantAuditLogsApiV1TenantsAuditLogsGetErrors, GetTenantAuditLogsApiV1TenantsAuditLogsGetResponses, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetData, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetErrors, GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetResponses, GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetData, GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetErrors, GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetResponses, GetUserApiV1UsersUserIdGetData, GetUserApiV1UsersUserIdGetErrors, GetUserApiV1UsersUserIdGetResponses, GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetData, GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetErrors, GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetResponses, GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetData, GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetErrors, GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetResponses, GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetData, GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetErrors, GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetResponses, GetUsersApiV1UsersGetData, GetUsersApiV1UsersGetErrors, GetUsersApiV1UsersGetResponses, GetUserStatsApiV1UsersStatsSummaryGetData, GetUserStatsApiV1UsersStatsSummaryGetResponses, HealthCheckApiV1HealthGetData, HealthCheckApiV1HealthGetResponses, HealthCheckHealthGetData, HealthCheckHealthGetResponses, ListAnonymousTenantsApiV1TenantsAnonymousListGetData, ListAnonymousTenantsApiV1TenantsAnonymousListGetErrors, ListAnonymousTenantsApiV1TenantsAnonymousListGetResponses, ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetData, ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetErrors, ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetResponses, ListLoginLogsApiV1LogsLoginLoginLogsGetData, ListLoginLogsApiV1LogsLoginLoginLogsGetErrors, ListLoginLogsApiV1LogsLoginLoginLogsGetResponses, ListMessageLogsApiV1MessagesLogsMessageLogsGetData, ListMessageLogsApiV1MessagesLogsMessageLogsGetErrors, ListMessageLogsApiV1MessagesLogsMessageLogsGetResponses, ListNetworkLogsApiV1LogsNetworkNetworkLogsGetData, ListNetworkLogsApiV1LogsNetworkNetworkLogsGetErrors, ListNetworkLogsApiV1LogsNetworkNetworkLogsGetResponses, ListOperationLogsApiV1LogsOperationOperationLogsGetData, ListOperationLogsApiV1LogsOperationOperationLogsGetErrors, ListOperationLogsApiV1LogsOperationOperationLogsGetResponses, ListSystemUsersApiV1UsersSystemUsersGetData, ListSystemUsersApiV1UsersSystemUsersGetErrors, ListSystemUsersApiV1UsersSystemUsersGetResponses, ListTemplatesApiV1MessagesTemplatesGetData, ListTemplatesApiV1MessagesTemplatesGetErrors, ListTemplatesApiV1MessagesTemplatesGetResponses, ListTenantsApiV1TenantsGetData, ListTenantsApiV1TenantsGetErrors, ListTenantsApiV1TenantsGetResponses, LoginApiV1AuthLoginPostData, LoginApiV1AuthLoginPostErrors, LoginApiV1AuthLoginPostResponses, LogoutApiV1AuthLogoutPostData, LogoutApiV1AuthLogoutPostResponses, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostData, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostErrors, MarkMessageAsReadApiV1MessagesLogsMessageLogsMessageIdReadPostResponses, RefreshTokenApiV1AuthRefreshPostData, RefreshTokenApiV1AuthRefreshPostResponses, RegisterApiV1AuthRegisterPostData, RegisterApiV1AuthRegisterPostErrors, RegisterApiV1AuthRegisterPostResponses, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostData, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostErrors, RegisterWithCompanyApiV1AuthRegisterWithCompanyPostResponses, RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteData, RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteErrors, RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteResponses, RetryFailedMessageApiV1MessagesMessageIdRetryPostData, RetryFailedMessageApiV1MessagesMessageIdRetryPostErrors, RetryFailedMessageApiV1MessagesMessageIdRetryPostResponses, ScheduleMessageApiV1MessagesSchedulePostData, ScheduleMessageApiV1MessagesSchedulePostErrors, ScheduleMessageApiV1MessagesSchedulePostResponses, SearchLogsApiV1LogsQueryLogTypeGetData, SearchLogsApiV1LogsQueryLogTypeGetErrors, SearchLogsApiV1LogsQueryLogTypeGetResponses, SendMessageApiV1MessagesSendPostData, SendMessageApiV1MessagesSendPostErrors, SendMessageApiV1MessagesSendPostResponses, SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostData, SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostErrors, SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostResponses, SubmitTenantAuditApiV1TenantsSubmitPostData, SubmitTenantAuditApiV1TenantsSubmitPostErrors, SubmitTenantAuditApiV1TenantsSubmitPostResponses, TestTemplateApiV1MessagesTemplatesTemplateIdTestPostData, TestTemplateApiV1MessagesTemplatesTemplateIdTestPostErrors, TestTemplateApiV1MessagesTemplatesTemplateIdTestPostResponses, UpdateCurrentUserApiV1AuthMePutData, UpdateCurrentUserApiV1AuthMePutErrors, UpdateCurrentUserApiV1AuthMePutResponses, UpdateDepartmentApiV1DepartmentsDepartmentIdPutData, UpdateDepartmentApiV1DepartmentsDepartmentIdPutErrors, UpdateDepartmentApiV1DepartmentsDepartmentIdPutResponses, UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchData, UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchErrors, UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchResponses, UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchData, UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchErrors, UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchResponses, UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutData, UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutErrors, UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutResponses, UpdateRoleApiV1UsersPermissionsRolesRoleIdPutData, UpdateRoleApiV1UsersPermissionsRolesRoleIdPutErrors, UpdateRoleApiV1UsersPermissionsRolesRoleIdPutResponses, UpdateSystemUserApiV1UsersSystemUsersUserIdPutData, UpdateSystemUserApiV1UsersSystemUsersUserIdPutErrors, UpdateSystemUserApiV1UsersSystemUsersUserIdPutResponses, UpdateTemplateApiV1MessagesTemplatesTemplateIdPutData, UpdateTemplateApiV1MessagesTemplatesTemplateIdPutErrors, UpdateTemplateApiV1MessagesTemplatesTemplateIdPutResponses, UpdateUserApiV1UsersUserIdPutData, UpdateUserApiV1UsersUserIdPutErrors, UpdateUserApiV1UsersUserIdPutResponses, VerifyUserTokenApiV1AuthVerifyTokenPostData, VerifyUserTokenApiV1AuthVerifyTokenPostResponses } from './types.gen'; export type Options = Options2 & { /** @@ -189,9 +189,358 @@ export const verifyUserTokenApiV1AuthVerifyTokenPost = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users', + ...options + }); +}; + +/** + * 创建用户 + * + * 创建用户(需要管理员权限) + */ +export const createUserApiV1UsersPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 删除用户 + * + * 删除用户(需要管理员权限) + */ +export const deleteUserApiV1UsersUserIdDelete = (options: Options) => { + return (options.client ?? client).delete({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/{user_id}', + ...options + }); +}; + +/** + * 获取用户详情 + * + * 获取用户详情(需要管理员权限) + */ +export const getUserApiV1UsersUserIdGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/{user_id}', + ...options + }); +}; + +/** + * 更新用户 + * + * 更新用户(需要管理员权限) + */ +export const updateUserApiV1UsersUserIdPut = (options: Options) => { + return (options.client ?? client).put({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/{user_id}', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 激活用户 + * + * 激活用户(需要管理员权限) + */ +export const activateUserApiV1UsersUserIdActivatePost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/{user_id}/activate', + ...options + }); +}; + +/** + * 停用用户 + * + * 停用用户(需要管理员权限) + */ +export const deactivateUserApiV1UsersUserIdDeactivatePost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/{user_id}/deactivate', + ...options + }); +}; + +/** + * 获取用户统计信息 + * + * 获取用户统计信息(需要管理员权限) + */ +export const getUserStatsApiV1UsersStatsSummaryGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/stats/summary', + ...options + }); +}; + +/** + * 获取部门选择列表 + * + * 获取部门选择列表(用于用户管理中的部门选择,仅限 tenant scope 用户访问) + */ +export const getDepartmentOptionsApiV1UsersDepartmentsOptionsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/departments/options', + ...options + }); +}; + +/** + * 获取系统权限列表 + * + * 获取系统权限列表(需要系统权限) + */ +export const getSystemPermissionsApiV1UsersPermissionsPermissionsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/permissions', + ...options + }); +}; + +/** + * 获取角色列表 + * + * 获取角色列表(支持租户和系统角色) + */ +export const getRolesApiV1UsersPermissionsRolesGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/roles', + ...options + }); +}; + +/** + * 创建角色 + * + * 创建角色 + */ +export const createRoleApiV1UsersPermissionsRolesPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/roles', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 删除角色 + * + * 删除角色 + */ +export const deleteRoleApiV1UsersPermissionsRolesRoleIdDelete = (options: Options) => { + return (options.client ?? client).delete({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/roles/{role_id}', + ...options + }); +}; + +/** + * 获取角色详情 + * + * 获取角色详情 + */ +export const getRoleApiV1UsersPermissionsRolesRoleIdGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/roles/{role_id}', + ...options + }); +}; + +/** + * 更新角色 + * + * 更新角色 + */ +export const updateRoleApiV1UsersPermissionsRolesRoleIdPut = (options: Options) => { + return (options.client ?? client).put({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/roles/{role_id}', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 获取用户角色列表 + * + * 获取用户的角色列表 + */ +export const getUserRolesApiV1UsersPermissionsUsersUserIdRolesGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/users/{user_id}/roles', + ...options + }); +}; + +/** + * 为用户分配角色 + * + * 为用户分配角色(会替换用户现有角色) + */ +export const assignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/users/{user_id}/roles', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 移除用户角色 + * + * 移除用户的特定角色 + */ +export const removeUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDelete = (options: Options) => { + return (options.client ?? client).delete({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/users/permissions/users/{user_id}/roles/{role_id}', + ...options + }); +}; + +/** + * 获取所有用户账户列表 + * + * 获取所有用户账户列表(需要系统权限) + * + * 支持以下功能: + * - 分页查询 + * - 多条件搜索过滤(支持企业名称模糊搜索) + * - 系统用户和租户超级用户管理 */ export const listSystemUsersApiV1UsersSystemUsersGet = (options?: Options) => { return (options?.client ?? client).get({ @@ -340,176 +689,6 @@ export const deactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePost = (options?: Options) => { - return (options?.client ?? client).get({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/', - ...options - }); -}; - -/** - * 创建用户 - * - * 创建用户(需要管理员权限) - */ -export const createUserApiV1UsersPost = (options: Options) => { - return (options.client ?? client).post({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/', - ...options, - headers: { - 'Content-Type': 'application/json', - ...options.headers - } - }); -}; - -/** - * 删除用户 - * - * 删除用户(需要管理员权限) - */ -export const deleteUserApiV1UsersUserIdDelete = (options: Options) => { - return (options.client ?? client).delete({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/{user_id}', - ...options - }); -}; - -/** - * 获取用户详情 - * - * 获取用户详情(需要管理员权限) - */ -export const getUserApiV1UsersUserIdGet = (options: Options) => { - return (options.client ?? client).get({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/{user_id}', - ...options - }); -}; - -/** - * 更新用户 - * - * 更新用户(需要管理员权限) - */ -export const updateUserApiV1UsersUserIdPut = (options: Options) => { - return (options.client ?? client).put({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/{user_id}', - ...options, - headers: { - 'Content-Type': 'application/json', - ...options.headers - } - }); -}; - -/** - * 激活用户 - * - * 激活用户(需要管理员权限) - */ -export const activateUserApiV1UsersUserIdActivatePost = (options: Options) => { - return (options.client ?? client).post({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/{user_id}/activate', - ...options - }); -}; - -/** - * 停用用户 - * - * 停用用户(需要管理员权限) - */ -export const deactivateUserApiV1UsersUserIdDeactivatePost = (options: Options) => { - return (options.client ?? client).post({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/{user_id}/deactivate', - ...options - }); -}; - -/** - * 获取用户统计信息 - * - * 获取用户统计信息(需要管理员权限) - */ -export const getUserStatsApiV1UsersStatsSummaryGet = (options?: Options) => { - return (options?.client ?? client).get({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/stats/summary', - ...options - }); -}; - -/** - * 获取部门选择列表 - * - * 获取部门选择列表(用于用户管理中的部门选择,仅限 tenant scope 用户访问) - */ -export const getDepartmentOptionsApiV1UsersDepartmentsOptionsGet = (options?: Options) => { - return (options?.client ?? client).get({ - security: [ - { - scheme: 'bearer', - type: 'http' - } - ], - url: '/api/v1/users/departments/options', - ...options - }); -}; - /** * 查询企业列表 * @@ -523,7 +702,7 @@ export const listTenantsApiV1TenantsGet = type: 'http' } ], - url: '/api/v1/tenants/', + url: '/api/v1/tenants', ...options }); }; @@ -541,7 +720,7 @@ export const createTenantApiV1TenantsPost = (options?: Options) => { - return (options?.client ?? client).get({ +export const getDepartmentsApiV1DepartmentsGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/', + url: '/api/v1/departments', ...options }); }; @@ -731,15 +910,15 @@ export const getDepartmentsApiV1DepartmentsDepartmentsGet = (options: Options) => { - return (options.client ?? client).post({ +export const createDepartmentApiV1DepartmentsPost = (options: Options) => { + return (options.client ?? client).post({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/', + url: '/api/v1/departments', ...options, headers: { 'Content-Type': 'application/json', @@ -753,15 +932,15 @@ export const createDepartmentApiV1DepartmentsDepartmentsPost = (options?: Options) => { - return (options?.client ?? client).get({ +export const getDepartmentTreeApiV1DepartmentsTreeGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/tree', + url: '/api/v1/departments/tree', ...options }); }; @@ -771,15 +950,15 @@ export const getDepartmentTreeApiV1DepartmentsDepartmentsTreeGet = (options: Options) => { - return (options.client ?? client).delete({ +export const deleteDepartmentApiV1DepartmentsDepartmentIdDelete = (options: Options) => { + return (options.client ?? client).delete({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}', + url: '/api/v1/departments/{department_id}', ...options }); }; @@ -789,15 +968,15 @@ export const deleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDelete = (options: Options) => { - return (options.client ?? client).get({ +export const getDepartmentApiV1DepartmentsDepartmentIdGet = (options: Options) => { + return (options.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}', + url: '/api/v1/departments/{department_id}', ...options }); }; @@ -807,15 +986,15 @@ export const getDepartmentApiV1DepartmentsDepartmentsDepartmentIdGet = (options: Options) => { - return (options.client ?? client).put({ +export const updateDepartmentApiV1DepartmentsDepartmentIdPut = (options: Options) => { + return (options.client ?? client).put({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}', + url: '/api/v1/departments/{department_id}', ...options, headers: { 'Content-Type': 'application/json', @@ -829,15 +1008,15 @@ export const updateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPut = (options: Options) => { - return (options.client ?? client).patch({ +export const updateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatch = (options: Options) => { + return (options.client ?? client).patch({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}/order', + url: '/api/v1/departments/{department_id}/order', ...options }); }; @@ -847,15 +1026,15 @@ export const updateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPa * * 启用或停用部门 */ -export const updateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatch = (options: Options) => { - return (options.client ?? client).patch({ +export const updateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatch = (options: Options) => { + return (options.client ?? client).patch({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}/status', + url: '/api/v1/departments/{department_id}/status', ...options }); }; @@ -865,141 +1044,451 @@ export const updateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatus * * 获取部门下的用户数量 */ -export const getDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGet = (options: Options) => { - return (options.client ?? client).get({ +export const getDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGet = (options: Options) => { + return (options.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/departments/departments/{department_id}/users-count', + url: '/api/v1/departments/{department_id}/users-count', ...options }); }; /** - * 查询登录日志 + * 获取登录日志列表 * - * 查询用户登录日志记录,支持多条件检索 + * 获取登录日志列表 */ -export const getLoginLogsApiV1LogsLogsLoginGet = (options?: Options) => { - return (options?.client ?? client).get({ +export const listLoginLogsApiV1LogsLoginLoginLogsGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/login', + url: '/api/v1/logs/login/login-logs', ...options }); }; /** - * 获取登录日志详情 + * 获取登录统计信息 * - * 根据ID获取登录日志的详细信息 + * 获取登录统计信息 */ -export const getLoginLogApiV1LogsLogsLoginLogIdGet = (options: Options) => { - return (options.client ?? client).get({ +export const getLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/login/{log_id}', + url: '/api/v1/logs/login/login-logs/statistics', ...options }); }; /** - * 查询操作日志 + * 导出登录日志 * - * 查询用户操作日志记录,支持多条件检索 + * 导出登录日志 */ -export const getOperationLogsApiV1LogsLogsOperationGet = (options?: Options) => { - return (options?.client ?? client).get({ +export const exportLoginLogsApiV1LogsLoginLoginLogsExportGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/operation', + url: '/api/v1/logs/login/login-logs/export', ...options }); }; /** - * 获取操作日志详情 + * 获取可疑登录记录 * - * 根据ID获取操作日志的详细信息 + * 获取可疑登录记录 */ -export const getOperationLogApiV1LogsLogsOperationLogIdGet = (options: Options) => { - return (options.client ?? client).get({ +export const getSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/operation/{log_id}', + url: '/api/v1/logs/login/login-logs/suspicious', ...options }); }; /** - * 查询网络日志 + * 获取失败登录尝试 * - * 查询网络请求日志记录,支持多条件检索 + * 获取失败登录尝试 */ -export const getNetworkLogsApiV1LogsLogsNetworkGet = (options?: Options) => { - return (options?.client ?? client).get({ +export const getFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/network', + url: '/api/v1/logs/login/login-logs/failed-attempts', ...options }); }; /** - * 获取网络日志详情 + * 获取用户登录历史 * - * 根据ID获取网络日志的详细信息 + * 获取用户登录历史 */ -export const getNetworkLogApiV1LogsLogsNetworkLogIdGet = (options: Options) => { - return (options.client ?? client).get({ +export const getUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGet = (options: Options) => { + return (options.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/network/{log_id}', + url: '/api/v1/logs/login/login-logs/user/{user_id}/history', ...options }); }; /** - * 获取性能统计 + * 获取操作日志列表 * - * 获取系统性能统计信息 + * 获取操作日志列表 */ -export const getPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGet = (options?: Options) => { - return (options?.client ?? client).get({ +export const listOperationLogsApiV1LogsOperationOperationLogsGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/logs/logs/network/stats/performance', + url: '/api/v1/logs/operation/operation-logs', + ...options + }); +}; + +/** + * 获取操作统计信息 + * + * 获取操作统计信息 + */ +export const getOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/operation/operation-logs/statistics', + ...options + }); +}; + +/** + * 导出操作日志 + * + * 导出操作日志 + */ +export const exportOperationLogsApiV1LogsOperationOperationLogsExportGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/operation/operation-logs/export', + ...options + }); +}; + +/** + * 获取错误操作记录 + * + * 获取错误操作记录 + */ +export const getErrorOperationsApiV1LogsOperationOperationLogsErrorsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/operation/operation-logs/errors', + ...options + }); +}; + +/** + * 获取模块操作记录 + * + * 获取模块操作记录 + */ +export const getModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/operation/operation-logs/module/{module}/history', + ...options + }); +}; + +/** + * 获取用户操作历史 + * + * 获取用户操作历史 + */ +export const getUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/operation/operation-logs/user/{user_id}/history', + ...options + }); +}; + +/** + * 获取网络日志列表 + * + * 获取网络日志列表 + */ +export const listNetworkLogsApiV1LogsNetworkNetworkLogsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs', + ...options + }); +}; + +/** + * 获取网络统计信息 + * + * 获取网络统计信息 + */ +export const getNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/statistics', + ...options + }); +}; + +/** + * 导出网络日志 + * + * 导出网络日志 + */ +export const exportNetworkLogsApiV1LogsNetworkNetworkLogsExportGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/export', + ...options + }); +}; + +/** + * 获取错误请求记录 + * + * 获取错误请求记录 + */ +export const getErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/errors', + ...options + }); +}; + +/** + * 获取慢请求记录 + * + * 获取慢请求记录 + */ +export const getSlowRequestsApiV1LogsNetworkNetworkLogsSlowGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/slow', + ...options + }); +}; + +/** + * 获取IP活动记录 + * + * 获取IP活动记录 + */ +export const getIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/ip/{ip_address}/activity', + ...options + }); +}; + +/** + * 获取端点统计信息 + * + * 获取端点统计信息 + */ +export const getEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/network/network-logs/endpoint/{endpoint}/statistics', + ...options + }); +}; + +/** + * 统一日志搜索接口 + * + * 统一日志搜索接口 + */ +export const searchLogsApiV1LogsQueryLogTypeGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/query/{log_type}', + ...options + }); +}; + +/** + * 统一日志导出接口 + * + * 统一日志导出接口 + */ +export const exportLogsApiV1LogsQueryLogTypeExportPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/query/{log_type}/export', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 获取综合统计信息 + * + * 获取综合统计信息 + */ +export const getComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/query/statistics/comprehensive', + ...options + }); +}; + +/** + * 获取用户活动摘要 + * + * 获取用户活动摘要 + */ +export const getUserActivitySummaryApiV1LogsQueryUserUserIdActivityGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/query/user/{user_id}/activity', + ...options + }); +}; + +/** + * 清理旧日志记录 + * + * 清理旧日志记录 + */ +export const cleanupOldLogsApiV1LogsQueryCleanupPost = (options?: Options) => { + return (options?.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/logs/query/cleanup', ...options }); }; @@ -1104,21 +1593,23 @@ export const retryFailedMessageApiV1MessagesMessageIdRetryPost = (options?: Options) => { - return (options?.client ?? client).get({ +export const listTemplatesApiV1MessagesTemplatesGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates', + url: '/api/v1/messages/templates', ...options }); }; @@ -1135,15 +1626,15 @@ export const listTemplatesApiV1MessagesTemplatesMessageTemplatesGet = (options: Options) => { - return (options.client ?? client).post({ +export const createTemplateApiV1MessagesTemplatesPost = (options: Options) => { + return (options.client ?? client).post({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates', + url: '/api/v1/messages/templates', ...options, headers: { 'Content-Type': 'application/json', @@ -1159,15 +1650,15 @@ export const createTemplateApiV1MessagesTemplatesMessageTemplatesPost = (options: Options) => { - return (options.client ?? client).delete({ +export const deleteTemplateApiV1MessagesTemplatesTemplateIdDelete = (options: Options) => { + return (options.client ?? client).delete({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates/{template_id}', + url: '/api/v1/messages/templates/{template_id}', ...options }); }; @@ -1179,15 +1670,15 @@ export const deleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDelet * * - **template_id**: 模板ID */ -export const getTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGet = (options: Options) => { - return (options.client ?? client).get({ +export const getTemplateApiV1MessagesTemplatesTemplateIdGet = (options: Options) => { + return (options.client ?? client).get({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates/{template_id}', + url: '/api/v1/messages/templates/{template_id}', ...options }); }; @@ -1204,15 +1695,15 @@ export const getTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGet = (options: Options) => { - return (options.client ?? client).put({ +export const updateTemplateApiV1MessagesTemplatesTemplateIdPut = (options: Options) => { + return (options.client ?? client).put({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates/{template_id}', + url: '/api/v1/messages/templates/{template_id}', ...options, headers: { 'Content-Type': 'application/json', @@ -1229,15 +1720,15 @@ export const updateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPut = * - **template_id**: 模板ID * - **test_variables**: 测试变量 */ -export const testTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPost = (options: Options) => { - return (options.client ?? client).post({ +export const testTemplateApiV1MessagesTemplatesTemplateIdTestPost = (options: Options) => { + return (options.client ?? client).post({ security: [ { scheme: 'bearer', type: 'http' } ], - url: '/api/v1/messages/templates/message-templates/{template_id}/test', + url: '/api/v1/messages/templates/{template_id}/test', ...options, headers: { 'Content-Type': 'application/json', @@ -1251,13 +1742,17 @@ export const testTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPos * * 获取消息日志列表 * + * 根据查询条件获取消息发送记录列表,支持按消息类型、发送状态、接收者、时间范围等条件过滤。 + * + * - **page**: 页码 + * - **size**: 每页数量 + * - **order_by**: 排序字段 + * - **sort_order**: 排序方向 * - **message_type**: 按消息类型过滤 * - **status**: 按发送状态过滤 * - **recipient**: 按接收者过滤 * - **start_date**: 开始时间 * - **end_date**: 结束时间 - * - **skip**: 跳过数量 - * - **limit**: 限制数量 */ export const listMessageLogsApiV1MessagesLogsMessageLogsGet = (options?: Options) => { return (options?.client ?? client).get({ @@ -1277,6 +1772,8 @@ export const listMessageLogsApiV1MessagesLogsMessageLogsGet = (options: Options) => { @@ -1297,6 +1794,8 @@ export const getMessageLogApiV1MessagesLogsMessageLogsMessageIdGet = (options: Options) => { @@ -1381,8 +1880,8 @@ export const getRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipie * * - **recipient**: 接收者 */ -export const getUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGet = (options: Options) => { - return (options.client ?? client).get({ +export const getUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGet = (options?: Options) => { + return (options?.client ?? client).get({ security: [ { scheme: 'bearer', @@ -1394,6 +1893,182 @@ export const getUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGet = (options?: Options) => { + return (options?.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/logs/message-logs/cleanup', + ...options + }); +}; + +/** + * 获取外部服务配置列表 + * + * 获取外部服务配置列表 + * + * - **service_type**: 服务类型过滤 (可选) + * - **is_active**: 是否启用过滤 (可选) + */ +export const listExternalServiceConfigsApiV1MessagesConfigsConfigsGet = (options?: Options) => { + return (options?.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs', + ...options + }); +}; + +/** + * 创建外部服务配置 + * + * 创建外部服务配置 + * + * - **name**: 服务名称 + * - **service_type**: 服务类型 + * - **config**: 服务配置 (JSON格式) + * - **is_active**: 是否启用 + * - **is_default**: 是否默认服务 + */ +export const createExternalServiceConfigApiV1MessagesConfigsConfigsPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 删除外部服务配置 + * + * 删除外部服务配置 + * + * - **config_id**: 配置ID + */ +export const deleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDelete = (options: Options) => { + return (options.client ?? client).delete({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs/{config_id}', + ...options + }); +}; + +/** + * 获取外部服务配置详情 + * + * 获取外部服务配置详情 + * + * - **config_id**: 配置ID + */ +export const getExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGet = (options: Options) => { + return (options.client ?? client).get({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs/{config_id}', + ...options + }); +}; + +/** + * 更新外部服务配置 + * + * 更新外部服务配置 + * + * - **config_id**: 配置ID + * - **config_data**: 更新数据 + */ +export const updateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPut = (options: Options) => { + return (options.client ?? client).put({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs/{config_id}', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options.headers + } + }); +}; + +/** + * 设置默认服务 + * + * 设置默认服务 + * + * - **config_id**: 配置ID + */ +export const setDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs/{config_id}/set-default', + ...options + }); +}; + +/** + * 检查服务健康状态 + * + * 检查服务健康状态 + * + * - **config_id**: 配置ID + */ +export const checkServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPost = (options: Options) => { + return (options.client ?? client).post({ + security: [ + { + scheme: 'bearer', + type: 'http' + } + ], + url: '/api/v1/messages/configs/configs/{config_id}/health-check', + ...options + }); +}; + /** * 基础健康检查 * @@ -1401,7 +2076,7 @@ export const getUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGet = (options?: Options) => { return (options?.client ?? client).get({ - url: '/api/v1/health/', + url: '/api/v1/health', ...options }); }; diff --git a/crop-x/src/lib/api/types.gen.ts b/crop-x/src/lib/api/types.gen.ts index 7fb2173..7d23321 100644 --- a/crop-x/src/lib/api/types.gen.ts +++ b/crop-x/src/lib/api/types.gen.ts @@ -262,6 +262,12 @@ export type DepartmentResponse = { * 部门ID */ id: string; + /** + * Tenant Id + * + * 租户ID + */ + tenant_id?: string | null; /** * Parent Id * @@ -354,6 +360,12 @@ export type DepartmentTreeResponseInput = { * 部门ID */ id: string; + /** + * Tenant Id + * + * 租户ID + */ + tenant_id?: string | null; /** * Parent Id * @@ -452,6 +464,12 @@ export type DepartmentTreeResponseOutput = { * 部门ID */ id: string; + /** + * Tenant Id + * + * 租户ID + */ + tenant_id?: string | null; /** * Parent Id * @@ -544,12 +562,6 @@ export type DepartmentUpdate = { * 部门负责人邮箱 */ manager_email?: string | null; - /** - * Parent Id - * - * 父部门ID - */ - parent_id?: string | null; /** * Order Index * @@ -646,6 +658,165 @@ export type DiskPartitionInfo = { usage_percent: number; }; +/** + * ExternalServiceConfigCreate + * + * 外部服务配置创建请求 + */ +export type ExternalServiceConfigCreate = { + /** + * Name + * + * 服务名称 + */ + name: string; + /** + * 服务类型 + */ + service_type: ExternalServiceType; + /** + * Config + * + * 服务配置 (JSON格式) + */ + config: string; + /** + * Description + * + * 服务描述 + */ + description?: string | null; + /** + * Is Active + * + * 是否启用 + */ + is_active?: boolean; + /** + * Is Default + * + * 是否默认服务 + */ + is_default?: boolean; +}; + +/** + * ExternalServiceConfigResponse + * + * 外部服务配置响应 + */ +export type ExternalServiceConfigResponse = { + /** + * Id + * + * 配置ID + */ + id: string; + /** + * Name + * + * 服务名称 + */ + name: string; + /** + * 服务类型 + */ + service_type: ExternalServiceType; + /** + * Config + * + * 服务配置 + */ + config: string; + /** + * Description + * + * 服务描述 + */ + description?: string | null; + /** + * Is Active + * + * 是否启用 + */ + is_active: boolean; + /** + * Is Default + * + * 是否默认服务 + */ + is_default: boolean; + /** + * Is Healthy + * + * 是否健康 + */ + is_healthy: boolean; + /** + * Last Health Check + * + * 最后健康检查时间 + */ + last_health_check?: string | null; + /** + * Created At + * + * 创建时间 + */ + created_at: string; + /** + * Updated At + * + * 更新时间 + */ + updated_at: string; +}; + +/** + * ExternalServiceConfigUpdate + * + * 外部服务配置更新请求 + */ +export type ExternalServiceConfigUpdate = { + /** + * Name + * + * 服务名称 + */ + name?: string | null; + /** + * Config + * + * 服务配置 (JSON格式) + */ + config?: string | null; + /** + * Description + * + * 服务描述 + */ + description?: string | null; + /** + * Is Active + * + * 是否启用 + */ + is_active?: boolean | null; + /** + * Is Default + * + * 是否默认服务 + */ + is_default?: boolean | null; +}; + +/** + * ExternalServiceType + * + * 外部服务类型枚举 + */ +export type ExternalServiceType = 'smtp' | 'sms_provider' | 'push_service'; + /** * HTTPValidationError */ @@ -664,138 +835,90 @@ export type HttpValidationError = { export type InvoiceType = '普通发票' | '增值税专用发票' | '电子发票'; /** - * LogListResponse + * LogExportRequest * - * 日志列表响应模式 + * 日志导出请求 */ -export type LogListResponse = { +export type LogExportRequest = { /** - * Items + * Start Time * - * 日志列表 + * 开始时间 */ - items: Array; + start_time?: string | null; /** - * Total + * End Time * - * 总记录数 + * 结束时间 */ - total: number; - /** - * Skip - * - * 跳过记录数 - */ - skip?: number; - /** - * Limit - * - * 限制记录数 - */ - limit?: number; -}; - -/** - * LoginLog - * - * 登录日志响应模式 - */ -export type LoginLog = { - /** - * Tenant Id - * - * 租户ID - */ - tenant_id?: string | null; + end_time?: string | null; /** * User Id * * 用户ID */ - user_id: string; + user_id?: string | null; /** - * Username + * Format * - * 用户名 + * 导出格式 */ - username: string; - /** - * 登录状态 - */ - status: LoginStatus; - /** - * 登录方式 - */ - method: LoginMethod; - /** - * Ip Address - * - * IP地址 - */ - ip_address: string; - /** - * User Agent - * - * 用户代理 - */ - user_agent?: string | null; - /** - * Location - * - * 地理位置 - */ - location?: string | null; - /** - * Failure Reason - * - * 失败原因 - */ - failure_reason?: string | null; - /** - * Attempt Count - * - * 尝试次数 - */ - attempt_count?: number; - /** - * Is Suspicious - * - * 是否可疑 - */ - is_suspicious?: boolean; - /** - * Id - * - * 日志ID - */ - id: string; - /** - * Created At - * - * 创建时间 - */ - created_at: string; - /** - * Updated At - * - * 更新时间 - */ - updated_at: string; + format?: string; }; /** - * LoginMethod + * LoginLogStatistics * - * 登录方式枚举 + * 登录日志统计 */ -export type LoginMethod = 'password' | 'captcha' | 'sso'; - -/** - * LoginStatus - * - * 登录状态枚举 - */ -export type LoginStatus = 'success' | 'failed' | 'locked'; +export type LoginLogStatistics = { + /** + * Total Logins + * + * 总登录次数 + */ + total_logins: number; + /** + * Successful Logins + * + * 成功登录次数 + */ + successful_logins: number; + /** + * Failed Logins + * + * 失败登录次数 + */ + failed_logins: number; + /** + * Suspicious Logins + * + * 可疑登录次数 + */ + suspicious_logins: number; + /** + * Success Rate + * + * 成功率 + */ + success_rate: number; + /** + * Method Distribution + * + * 登录方式分布 + */ + method_distribution: { + [key: string]: number; + }; + /** + * Daily Distribution + * + * 每日登录分布 + */ + daily_distribution: { + [key: string]: number; + }; +}; /** * MemoryInfo @@ -1299,103 +1422,65 @@ export type NetworkInterfaceInfo = { }; /** - * NetworkLog + * NetworkLogStatistics * - * 网络日志响应模式 + * 网络日志统计 */ -export type NetworkLog = { +export type NetworkLogStatistics = { /** - * Tenant Id + * Total Requests * - * 租户ID + * 总请求数 */ - tenant_id?: string | null; + total_requests: number; /** - * Request Method + * Error Requests * - * 请求方法 + * 错误请求数 */ - request_method: string; + error_requests: number; /** - * Request Url + * Slow Requests * - * 请求URL + * 慢请求数 */ - request_url: string; + slow_requests: number; /** - * Request Path + * Error Rate * - * 请求路径 + * 错误率 */ - request_path: string; + error_rate: number; /** - * Query Params + * Slow Request Rate * - * 查询参数 + * 慢请求率 */ - query_params?: { - [key: string]: unknown; - } | null; + slow_request_rate: number; /** - * Client Ip + * Method Distribution * - * 客户端IP + * 请求方法分布 */ - client_ip: string; + method_distribution: { + [key: string]: number; + }; /** - * User Agent + * Status Distribution * - * 用户代理 + * 状态码分布 */ - user_agent?: string | null; - /** - * Referer - * - * 来源页面 - */ - referer?: string | null; - /** - * Response Status - * - * 响应状态码 - */ - response_status: number; - /** - * Response Size - * - * 响应大小(字节) - */ - response_size?: number | null; - /** - * Processing Time - * - * 处理时间(秒) - */ - processing_time: number; - /** - * Database Time - * - * 数据库查询时间(秒) - */ - database_time?: number | null; - /** - * User Id - * - * 用户ID - */ - user_id?: string | null; - /** - * Is Error - * - * 是否错误 - */ - is_error?: boolean; - /** - * Error Message - * - * 错误信息 - */ - error_message?: string | null; + status_distribution: { + [key: string]: number; + }; +}; + +/** + * OperationLogResponse + * + * 操作日志响应 + */ +export type OperationLogResponse = { /** * Id * @@ -1414,26 +1499,6 @@ export type NetworkLog = { * 更新时间 */ updated_at: string; -}; - -/** - * OperationLog - * - * 操作日志响应模式 - */ -export type OperationLog = { - /** - * Tenant Id - * - * 租户ID - */ - tenant_id?: string | null; - /** - * User Id - * - * 用户ID - */ - user_id: string; /** * Username * @@ -1441,9 +1506,17 @@ export type OperationLog = { */ username: string; /** + * User Id + * + * 用户ID + */ + user_id: string; + /** + * Operation Type + * * 操作类型 */ - operation_type: OperationType; + operation_type: string; /** * Module * @@ -1515,56 +1588,339 @@ export type OperationLog = { /** * Processing Time * - * 处理时间(秒) + * 处理时间 */ processing_time: number; - /** - * Id - * - * 日志ID - */ - id: string; - /** - * Created At - * - * 创建时间 - */ - created_at: string; - /** - * Updated At - * - * 更新时间 - */ - updated_at: string; }; /** - * OperationType + * OperationLogStatistics * - * 操作类型枚举 + * 操作日志统计 */ -export type OperationType = 'create' | 'read' | 'update' | 'delete' | 'export' | 'import' | 'config' | 'auth'; +export type OperationLogStatistics = { + /** + * Total Operations + * + * 总操作次数 + */ + total_operations: number; + /** + * Error Operations + * + * 错误操作次数 + */ + error_operations: number; + /** + * Error Rate + * + * 错误率 + */ + error_rate: number; + /** + * Type Distribution + * + * 操作类型分布 + */ + type_distribution: { + [key: string]: number; + }; + /** + * Module Distribution + * + * 模块分布 + */ + module_distribution: { + [key: string]: number; + }; +}; /** - * Page[DepartmentResponse] + * PagedResponse[DepartmentResponse] */ -export type PageDepartmentResponse = { +export type PagedResponseDepartmentResponse = { /** * Data + * + * 数据列表 */ - data: Array; + data?: Array; /** * Total + * + * 数据总数 */ total: number; /** * Page + * + * 当前页数 */ page: number; /** * Size + * + * 当前数量 */ size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[MessageLogResponse] + */ +export type PagedResponseMessageLogResponse = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[MessageTemplateResponse] + */ +export type PagedResponseMessageTemplateResponse = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[OperationLogResponse] + */ +export type PagedResponseOperationLogResponse = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[Permission] + */ +export type PagedResponsePermission = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[Role] + */ +export type PagedResponseRole = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; }; /** @@ -1711,6 +2067,102 @@ export type PagedResponseTenantResponse = { has_prev: boolean; }; +/** + * PagedResponse[UserListResponse] + */ +export type PagedResponseUserListResponse = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + +/** + * PagedResponse[UserResponse] + */ +export type PagedResponseUserResponse = { + /** + * Data + * + * 数据列表 + */ + data?: Array; + /** + * Total + * + * 数据总数 + */ + total: number; + /** + * Page + * + * 当前页数 + */ + page: number; + /** + * Size + * + * 当前数量 + */ + size: number; + /** + * Total Pages + * + * 总页数 + */ + total_pages: number; + /** + * Has Next + * + * 是否有下一页 + */ + has_next: boolean; + /** + * Has Prev + * + * 是否有上一页 + */ + has_prev: boolean; +}; + /** * PerformanceMetricsSummary * @@ -1756,35 +2208,63 @@ export type PerformanceMetricsSummary = { }; /** - * PerformanceStats + * Permission * - * 性能统计响应模式 + * 权限响应模型 */ -export type PerformanceStats = { +export type Permission = { /** - * Total Requests + * Name * - * 总请求数 + * 权限名称 */ - total_requests: number; + name: string; /** - * Avg Response Time + * Description * - * 平均响应时间 + * 权限描述 */ - avg_response_time: number; + description?: string | null; /** - * Error Rate + * Group * - * 错误率 + * 权限分组 */ - error_rate: number; + group?: string | null; /** - * Slow Requests + * Resource * - * 慢请求数 + * 资源名称 */ - slow_requests: number; + resource?: string | null; + /** + * Action + * + * 操作名称 + */ + action?: string | null; + /** + * Id + */ + id: string; + /** + * Is System + */ + is_system: boolean; + /** + * Created At + */ + created_at: string; + /** + * Updated At + */ + updated_at: string; + /** + * Resource Action + * + * 资源:操作格式 + */ + resource_action: string; }; /** @@ -1821,6 +2301,100 @@ export type PythonRuntimeInfo = { }; }; +/** + * Role + * + * 角色响应模型 + */ +export type Role = { + /** + * Name + * + * 角色名称 + */ + name: string; + /** + * Description + * + * 角色描述 + */ + description?: string | null; + /** + * Id + */ + id: string; + /** + * Tenant Id + */ + tenant_id: string | null; + /** + * Created At + */ + created_at: string; + /** + * Updated At + */ + updated_at: string; +}; + +/** + * RoleCreate + * + * 创建角色模型 + */ +export type RoleCreate = { + /** + * Name + * + * 角色名称 + */ + name: string; + /** + * Description + * + * 角色描述 + */ + description?: string | null; + /** + * Permission Ids + * + * 权限ID列表 + */ + permission_ids?: Array | null; +}; + +/** + * RoleUpdate + * + * 更新角色模型 + */ +export type RoleUpdate = { + /** + * Name + * + * 角色名称 + */ + name?: string | null; + /** + * Description + * + * 角色描述 + */ + description?: string | null; + /** + * Is Active + * + * 是否激活 + */ + is_active?: boolean | null; + /** + * Permission Ids + * + * 权限ID列表 + */ + permission_ids?: Array | null; +}; + /** * SystemMetricsResponse * @@ -2506,7 +3080,7 @@ export type User = { /** * Tenant Id */ - tenant_id: string; + tenant_id: string | null; /** * Is Active */ @@ -2613,6 +3187,12 @@ export type UserCreate = { * 部门ID */ department_id?: string | null; + /** + * Is Superuser + * + * 是否超级用户 + */ + is_superuser?: boolean; }; /** @@ -2665,6 +3245,62 @@ export type UserCreateWithCompany = { tenant_code?: string; }; +/** + * UserListResponse + * + * 用户列表响应模型 - 用于系统用户管理接口 + */ +export type UserListResponse = { + /** + * Username + * + * 用户名 + */ + username: string; + /** + * Full Name + * + * 姓名 + */ + full_name?: string | null; + /** + * Phone + * + * 电话 + */ + phone: string; + /** + * Company Name + * + * 企业名称 + */ + company_name?: string | null; + /** + * User Type + * + * 用户类型: system/tenant + */ + user_type: string; + /** + * Status + * + * 状态: active/inactive + */ + status: string; + /** + * Is Superuser + * + * 是否超级用户 + */ + is_superuser: boolean; + /** + * User Type Str + * + * 用户类型描述 + */ + user_type_str: string; +}; + /** * UserLoginWithCaptcha * @@ -2697,6 +3333,186 @@ export type UserLoginWithCaptcha = { captcha_text: string; }; +/** + * UserResponse + * + * 用户响应模型 - 用于API响应 + */ +export type UserResponse = { + /** + * Id + * + * 用户ID + */ + id: string; + /** + * Tenant Id + * + * 租户ID + */ + tenant_id?: string | null; + /** + * Email + * + * 邮箱地址 + */ + email: string; + /** + * Username + * + * 用户名 + */ + username: string; + /** + * Full Name + * + * 全名 + */ + full_name?: string | null; + /** + * Phone + * + * 手机号 + */ + phone: string; + /** + * Is Active + * + * 是否激活 + */ + is_active: boolean; + /** + * Is Superuser + * + * 是否超级用户 + */ + is_superuser: boolean; + /** + * Is Verified + * + * 是否已验证 + */ + is_verified: boolean; + /** + * Created At + * + * 创建时间 + */ + created_at: string; + /** + * Updated At + * + * 更新时间 + */ + updated_at: string; + /** + * Last Login At + * + * 最后登录时间 + */ + last_login_at?: string | null; + /** + * Avatar Url + * + * 头像URL + */ + avatar_url?: string | null; + /** + * Bio + * + * 个人简介 + */ + bio?: string | null; + /** + * Display Name + * + * 显示名称 + */ + display_name: string; + /** + * Department Id + * + * 部门ID + */ + department_id?: string | null; + /** + * Department Name + * + * 部门名称 + */ + department_name?: string | null; + /** + * Scope + * + * 用户作用域 + */ + scope: string; + /** + * Company Name + * + * 企业名称 + */ + company_name?: string | null; +}; + +/** + * UserRoleAssignRequest + * + * 用户角色分配请求模型 + */ +export type UserRoleAssignRequest = { + /** + * Role Ids + * + * 要分配的角色ID列表 + */ + role_ids: Array; +}; + +/** + * UserRoleResponse + * + * 用户角色分配响应模型 + */ +export type UserRoleResponse = { + /** + * User Id + * + * 用户ID + */ + user_id: string; + /** + * Username + * + * 用户名 + */ + username: string; + /** + * Email + * + * 邮箱 + */ + email: string; + /** + * Full Name + * + * 全名 + */ + full_name?: string | null; + /** + * Roles + * + * 用户角色列表 + */ + roles?: Array; + /** + * Assigned At + * + * 分配时间 + */ + assigned_at?: string | null; +}; + /** * UserUpdate * @@ -2984,10 +3800,22 @@ export type VerifyUserTokenApiV1AuthVerifyTokenPostResponses = { 200: unknown; }; -export type ListSystemUsersApiV1UsersSystemUsersGetData = { +export type GetUsersApiV1UsersGetData = { body?: never; path?: never; query?: { + /** + * Search + * + * 搜索关键词 + */ + search?: string; + /** + * Is Active + * + * 是否活跃 + */ + is_active?: boolean; /** * Page * @@ -3000,18 +3828,630 @@ export type ListSystemUsersApiV1UsersSystemUsersGetData = { * 每页数量 */ size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; + }; + url: '/api/v1/users'; +}; + +export type GetUsersApiV1UsersGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUsersApiV1UsersGetError = GetUsersApiV1UsersGetErrors[keyof GetUsersApiV1UsersGetErrors]; + +export type GetUsersApiV1UsersGetResponses = { + /** + * Successful Response + */ + 200: PagedResponseUserResponse; +}; + +export type GetUsersApiV1UsersGetResponse = GetUsersApiV1UsersGetResponses[keyof GetUsersApiV1UsersGetResponses]; + +export type CreateUserApiV1UsersPostData = { + body: UserCreate; + path?: never; + query?: never; + url: '/api/v1/users'; +}; + +export type CreateUserApiV1UsersPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CreateUserApiV1UsersPostError = CreateUserApiV1UsersPostErrors[keyof CreateUserApiV1UsersPostErrors]; + +export type CreateUserApiV1UsersPostResponses = { + /** + * Successful Response + */ + 200: UserResponse; +}; + +export type CreateUserApiV1UsersPostResponse = CreateUserApiV1UsersPostResponses[keyof CreateUserApiV1UsersPostResponses]; + +export type DeleteUserApiV1UsersUserIdDeleteData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/{user_id}'; +}; + +export type DeleteUserApiV1UsersUserIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type DeleteUserApiV1UsersUserIdDeleteError = DeleteUserApiV1UsersUserIdDeleteErrors[keyof DeleteUserApiV1UsersUserIdDeleteErrors]; + +export type DeleteUserApiV1UsersUserIdDeleteResponses = { + /** + * Response Delete User Api V1 Users User Id Delete + * + * Successful Response + */ + 200: unknown; +}; + +export type GetUserApiV1UsersUserIdGetData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/{user_id}'; +}; + +export type GetUserApiV1UsersUserIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUserApiV1UsersUserIdGetError = GetUserApiV1UsersUserIdGetErrors[keyof GetUserApiV1UsersUserIdGetErrors]; + +export type GetUserApiV1UsersUserIdGetResponses = { + /** + * Successful Response + */ + 200: UserResponse; +}; + +export type GetUserApiV1UsersUserIdGetResponse = GetUserApiV1UsersUserIdGetResponses[keyof GetUserApiV1UsersUserIdGetResponses]; + +export type UpdateUserApiV1UsersUserIdPutData = { + body: UserUpdate; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/{user_id}'; +}; + +export type UpdateUserApiV1UsersUserIdPutErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UpdateUserApiV1UsersUserIdPutError = UpdateUserApiV1UsersUserIdPutErrors[keyof UpdateUserApiV1UsersUserIdPutErrors]; + +export type UpdateUserApiV1UsersUserIdPutResponses = { + /** + * Successful Response + */ + 200: UserResponse; +}; + +export type UpdateUserApiV1UsersUserIdPutResponse = UpdateUserApiV1UsersUserIdPutResponses[keyof UpdateUserApiV1UsersUserIdPutResponses]; + +export type ActivateUserApiV1UsersUserIdActivatePostData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/{user_id}/activate'; +}; + +export type ActivateUserApiV1UsersUserIdActivatePostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ActivateUserApiV1UsersUserIdActivatePostError = ActivateUserApiV1UsersUserIdActivatePostErrors[keyof ActivateUserApiV1UsersUserIdActivatePostErrors]; + +export type ActivateUserApiV1UsersUserIdActivatePostResponses = { + /** + * Response Activate User Api V1 Users User Id Activate Post + * + * Successful Response + */ + 200: unknown; +}; + +export type DeactivateUserApiV1UsersUserIdDeactivatePostData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/{user_id}/deactivate'; +}; + +export type DeactivateUserApiV1UsersUserIdDeactivatePostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type DeactivateUserApiV1UsersUserIdDeactivatePostError = DeactivateUserApiV1UsersUserIdDeactivatePostErrors[keyof DeactivateUserApiV1UsersUserIdDeactivatePostErrors]; + +export type DeactivateUserApiV1UsersUserIdDeactivatePostResponses = { + /** + * Response Deactivate User Api V1 Users User Id Deactivate Post + * + * Successful Response + */ + 200: unknown; +}; + +export type GetUserStatsApiV1UsersStatsSummaryGetData = { + body?: never; + path?: never; + query?: never; + url: '/api/v1/users/stats/summary'; +}; + +export type GetUserStatsApiV1UsersStatsSummaryGetResponses = { + /** + * Response Get User Stats Api V1 Users Stats Summary Get + * + * Successful Response + */ + 200: unknown; +}; + +export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetData = { + body?: never; + path?: never; + query?: never; + url: '/api/v1/users/departments/options'; +}; + +export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses = { + /** + * Response Get Department Options Api V1 Users Departments Options Get + * + * Successful Response + */ + 200: Array; +}; + +export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponse = GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses[keyof GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses]; + +export type GetSystemPermissionsApiV1UsersPermissionsPermissionsGetData = { + body?: never; + path?: never; + query?: { /** * Search * * 搜索关键词 */ search?: string; + /** + * Group + * + * 权限分组过滤 + */ + group?: string; + /** + * Resource + * + * 资源过滤 + */ + resource?: string; + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; + }; + url: '/api/v1/users/permissions/permissions'; +}; + +export type GetSystemPermissionsApiV1UsersPermissionsPermissionsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetSystemPermissionsApiV1UsersPermissionsPermissionsGetError = GetSystemPermissionsApiV1UsersPermissionsPermissionsGetErrors[keyof GetSystemPermissionsApiV1UsersPermissionsPermissionsGetErrors]; + +export type GetSystemPermissionsApiV1UsersPermissionsPermissionsGetResponses = { + /** + * Successful Response + */ + 200: PagedResponsePermission; +}; + +export type GetSystemPermissionsApiV1UsersPermissionsPermissionsGetResponse = GetSystemPermissionsApiV1UsersPermissionsPermissionsGetResponses[keyof GetSystemPermissionsApiV1UsersPermissionsPermissionsGetResponses]; + +export type GetRolesApiV1UsersPermissionsRolesGetData = { + body?: never; + path?: never; + query?: { + /** + * Search + * + * 搜索关键词 + */ + search?: string; + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; + }; + url: '/api/v1/users/permissions/roles'; +}; + +export type GetRolesApiV1UsersPermissionsRolesGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetRolesApiV1UsersPermissionsRolesGetError = GetRolesApiV1UsersPermissionsRolesGetErrors[keyof GetRolesApiV1UsersPermissionsRolesGetErrors]; + +export type GetRolesApiV1UsersPermissionsRolesGetResponses = { + /** + * Successful Response + */ + 200: PagedResponseRole; +}; + +export type GetRolesApiV1UsersPermissionsRolesGetResponse = GetRolesApiV1UsersPermissionsRolesGetResponses[keyof GetRolesApiV1UsersPermissionsRolesGetResponses]; + +export type CreateRoleApiV1UsersPermissionsRolesPostData = { + body: RoleCreate; + path?: never; + query?: never; + url: '/api/v1/users/permissions/roles'; +}; + +export type CreateRoleApiV1UsersPermissionsRolesPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CreateRoleApiV1UsersPermissionsRolesPostError = CreateRoleApiV1UsersPermissionsRolesPostErrors[keyof CreateRoleApiV1UsersPermissionsRolesPostErrors]; + +export type CreateRoleApiV1UsersPermissionsRolesPostResponses = { + /** + * Successful Response + */ + 200: Role; +}; + +export type CreateRoleApiV1UsersPermissionsRolesPostResponse = CreateRoleApiV1UsersPermissionsRolesPostResponses[keyof CreateRoleApiV1UsersPermissionsRolesPostResponses]; + +export type DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteData = { + body?: never; + path: { + /** + * Role Id + */ + role_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/roles/{role_id}'; +}; + +export type DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteError = DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteErrors[keyof DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteErrors]; + +export type DeleteRoleApiV1UsersPermissionsRolesRoleIdDeleteResponses = { + /** + * Response Delete Role Api V1 Users Permissions Roles Role Id Delete + * + * Successful Response + */ + 200: unknown; +}; + +export type GetRoleApiV1UsersPermissionsRolesRoleIdGetData = { + body?: never; + path: { + /** + * Role Id + */ + role_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/roles/{role_id}'; +}; + +export type GetRoleApiV1UsersPermissionsRolesRoleIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetRoleApiV1UsersPermissionsRolesRoleIdGetError = GetRoleApiV1UsersPermissionsRolesRoleIdGetErrors[keyof GetRoleApiV1UsersPermissionsRolesRoleIdGetErrors]; + +export type GetRoleApiV1UsersPermissionsRolesRoleIdGetResponses = { + /** + * Successful Response + */ + 200: Role; +}; + +export type GetRoleApiV1UsersPermissionsRolesRoleIdGetResponse = GetRoleApiV1UsersPermissionsRolesRoleIdGetResponses[keyof GetRoleApiV1UsersPermissionsRolesRoleIdGetResponses]; + +export type UpdateRoleApiV1UsersPermissionsRolesRoleIdPutData = { + body: RoleUpdate; + path: { + /** + * Role Id + */ + role_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/roles/{role_id}'; +}; + +export type UpdateRoleApiV1UsersPermissionsRolesRoleIdPutErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UpdateRoleApiV1UsersPermissionsRolesRoleIdPutError = UpdateRoleApiV1UsersPermissionsRolesRoleIdPutErrors[keyof UpdateRoleApiV1UsersPermissionsRolesRoleIdPutErrors]; + +export type UpdateRoleApiV1UsersPermissionsRolesRoleIdPutResponses = { + /** + * Successful Response + */ + 200: Role; +}; + +export type UpdateRoleApiV1UsersPermissionsRolesRoleIdPutResponse = UpdateRoleApiV1UsersPermissionsRolesRoleIdPutResponses[keyof UpdateRoleApiV1UsersPermissionsRolesRoleIdPutResponses]; + +export type GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/users/{user_id}/roles'; +}; + +export type GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetError = GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetErrors[keyof GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetErrors]; + +export type GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetResponses = { + /** + * Response Get User Roles Api V1 Users Permissions Users User Id Roles Get + * + * Successful Response + */ + 200: Array; +}; + +export type GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetResponse = GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetResponses[keyof GetUserRolesApiV1UsersPermissionsUsersUserIdRolesGetResponses]; + +export type AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostData = { + body: UserRoleAssignRequest; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/users/{user_id}/roles'; +}; + +export type AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostError = AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostErrors[keyof AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostErrors]; + +export type AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostResponses = { + /** + * Successful Response + */ + 200: UserRoleResponse; +}; + +export type AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostResponse = AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostResponses[keyof AssignRolesToUserApiV1UsersPermissionsUsersUserIdRolesPostResponses]; + +export type RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + /** + * Role Id + */ + role_id: string; + }; + query?: never; + url: '/api/v1/users/permissions/users/{user_id}/roles/{role_id}'; +}; + +export type RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteError = RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteErrors[keyof RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteErrors]; + +export type RemoveUserRoleApiV1UsersPermissionsUsersUserIdRolesRoleIdDeleteResponses = { + /** + * Response Remove User Role Api V1 Users Permissions Users User Id Roles Role Id Delete + * + * Successful Response + */ + 200: unknown; +}; + +export type ListSystemUsersApiV1UsersSystemUsersGetData = { + body?: never; + path?: never; + query?: { + /** + * Search + * + * 搜索关键词(用户名、邮箱、全名、手机号、企业名称) + */ + search?: string; /** * Is Active * * 是否活跃 */ is_active?: boolean; + /** + * Tenant Id + * + * 租户id + */ + tenant_id?: string; + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; }; url: '/api/v1/users/system/users'; }; @@ -3027,11 +4467,9 @@ export type ListSystemUsersApiV1UsersSystemUsersGetError = ListSystemUsersApiV1U export type ListSystemUsersApiV1UsersSystemUsersGetResponses = { /** - * Response List System Users Api V1 Users System Users Get - * * Successful Response */ - 200: Array; + 200: PagedResponseUserListResponse; }; export type ListSystemUsersApiV1UsersSystemUsersGetResponse = ListSystemUsersApiV1UsersSystemUsersGetResponses[keyof ListSystemUsersApiV1UsersSystemUsersGetResponses]; @@ -3227,279 +4665,6 @@ export type DeactivateSystemUserApiV1UsersSystemUsersUserIdDeactivatePostRespons 200: unknown; }; -export type GetUsersApiV1UsersGetData = { - body?: never; - path?: never; - query?: { - /** - * Search - * - * 搜索关键词 - */ - search?: string; - /** - * Is Active - * - * 是否活跃 - */ - is_active?: boolean; - /** - * Page - * - * 页码 - */ - page?: number; - /** - * Size - * - * 每页数量 - */ - size?: number; - /** - * Order By - * - * 排序字段 - */ - order_by?: string; - /** - * Sort Order - * - * 排序方向 (asc/desc) - */ - sort_order?: string; - }; - url: '/api/v1/users/'; -}; - -export type GetUsersApiV1UsersGetErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetUsersApiV1UsersGetError = GetUsersApiV1UsersGetErrors[keyof GetUsersApiV1UsersGetErrors]; - -export type GetUsersApiV1UsersGetResponses = { - /** - * Response Get Users Api V1 Users Get - * - * Successful Response - */ - 200: Array; -}; - -export type GetUsersApiV1UsersGetResponse = GetUsersApiV1UsersGetResponses[keyof GetUsersApiV1UsersGetResponses]; - -export type CreateUserApiV1UsersPostData = { - body: UserCreate; - path?: never; - query?: never; - url: '/api/v1/users/'; -}; - -export type CreateUserApiV1UsersPostErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type CreateUserApiV1UsersPostError = CreateUserApiV1UsersPostErrors[keyof CreateUserApiV1UsersPostErrors]; - -export type CreateUserApiV1UsersPostResponses = { - /** - * Successful Response - */ - 200: User; -}; - -export type CreateUserApiV1UsersPostResponse = CreateUserApiV1UsersPostResponses[keyof CreateUserApiV1UsersPostResponses]; - -export type DeleteUserApiV1UsersUserIdDeleteData = { - body?: never; - path: { - /** - * User Id - */ - user_id: string; - }; - query?: never; - url: '/api/v1/users/{user_id}'; -}; - -export type DeleteUserApiV1UsersUserIdDeleteErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type DeleteUserApiV1UsersUserIdDeleteError = DeleteUserApiV1UsersUserIdDeleteErrors[keyof DeleteUserApiV1UsersUserIdDeleteErrors]; - -export type DeleteUserApiV1UsersUserIdDeleteResponses = { - /** - * Response Delete User Api V1 Users User Id Delete - * - * Successful Response - */ - 200: unknown; -}; - -export type GetUserApiV1UsersUserIdGetData = { - body?: never; - path: { - /** - * User Id - */ - user_id: string; - }; - query?: never; - url: '/api/v1/users/{user_id}'; -}; - -export type GetUserApiV1UsersUserIdGetErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetUserApiV1UsersUserIdGetError = GetUserApiV1UsersUserIdGetErrors[keyof GetUserApiV1UsersUserIdGetErrors]; - -export type GetUserApiV1UsersUserIdGetResponses = { - /** - * Successful Response - */ - 200: User; -}; - -export type GetUserApiV1UsersUserIdGetResponse = GetUserApiV1UsersUserIdGetResponses[keyof GetUserApiV1UsersUserIdGetResponses]; - -export type UpdateUserApiV1UsersUserIdPutData = { - body: UserUpdate; - path: { - /** - * User Id - */ - user_id: string; - }; - query?: never; - url: '/api/v1/users/{user_id}'; -}; - -export type UpdateUserApiV1UsersUserIdPutErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type UpdateUserApiV1UsersUserIdPutError = UpdateUserApiV1UsersUserIdPutErrors[keyof UpdateUserApiV1UsersUserIdPutErrors]; - -export type UpdateUserApiV1UsersUserIdPutResponses = { - /** - * Successful Response - */ - 200: User; -}; - -export type UpdateUserApiV1UsersUserIdPutResponse = UpdateUserApiV1UsersUserIdPutResponses[keyof UpdateUserApiV1UsersUserIdPutResponses]; - -export type ActivateUserApiV1UsersUserIdActivatePostData = { - body?: never; - path: { - /** - * User Id - */ - user_id: string; - }; - query?: never; - url: '/api/v1/users/{user_id}/activate'; -}; - -export type ActivateUserApiV1UsersUserIdActivatePostErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type ActivateUserApiV1UsersUserIdActivatePostError = ActivateUserApiV1UsersUserIdActivatePostErrors[keyof ActivateUserApiV1UsersUserIdActivatePostErrors]; - -export type ActivateUserApiV1UsersUserIdActivatePostResponses = { - /** - * Response Activate User Api V1 Users User Id Activate Post - * - * Successful Response - */ - 200: unknown; -}; - -export type DeactivateUserApiV1UsersUserIdDeactivatePostData = { - body?: never; - path: { - /** - * User Id - */ - user_id: string; - }; - query?: never; - url: '/api/v1/users/{user_id}/deactivate'; -}; - -export type DeactivateUserApiV1UsersUserIdDeactivatePostErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type DeactivateUserApiV1UsersUserIdDeactivatePostError = DeactivateUserApiV1UsersUserIdDeactivatePostErrors[keyof DeactivateUserApiV1UsersUserIdDeactivatePostErrors]; - -export type DeactivateUserApiV1UsersUserIdDeactivatePostResponses = { - /** - * Response Deactivate User Api V1 Users User Id Deactivate Post - * - * Successful Response - */ - 200: unknown; -}; - -export type GetUserStatsApiV1UsersStatsSummaryGetData = { - body?: never; - path?: never; - query?: never; - url: '/api/v1/users/stats/summary'; -}; - -export type GetUserStatsApiV1UsersStatsSummaryGetResponses = { - /** - * Response Get User Stats Api V1 Users Stats Summary Get - * - * Successful Response - */ - 200: unknown; -}; - -export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetData = { - body?: never; - path?: never; - query?: never; - url: '/api/v1/users/departments/options'; -}; - -export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses = { - /** - * Response Get Department Options Api V1 Users Departments Options Get - * - * Successful Response - */ - 200: Array; -}; - -export type GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponse = GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses[keyof GetDepartmentOptionsApiV1UsersDepartmentsOptionsGetResponses]; - export type ListTenantsApiV1TenantsGetData = { body?: never; path?: never; @@ -3541,7 +4706,7 @@ export type ListTenantsApiV1TenantsGetData = { */ sort_order?: string; }; - url: '/api/v1/tenants/'; + url: '/api/v1/tenants'; }; export type ListTenantsApiV1TenantsGetErrors = { @@ -3566,7 +4731,7 @@ export type CreateTenantApiV1TenantsPostData = { body: TenantCreateRequest; path?: never; query?: never; - url: '/api/v1/tenants/'; + url: '/api/v1/tenants'; }; export type CreateTenantApiV1TenantsPostErrors = { @@ -3594,9 +4759,15 @@ export type GetTenantAuditLogsApiV1TenantsAuditLogsGetData = { /** * Tenant Id * - * 租户ID + * 租户id */ tenant_id?: string; + /** + * Search + * + * 搜索关键词(用户名、邮箱、全名、手机号、企业名称) + */ + search?: string; /** * Page * @@ -3609,6 +4780,18 @@ export type GetTenantAuditLogsApiV1TenantsAuditLogsGetData = { * 每页数量 */ size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; }; url: '/api/v1/tenants/audit-logs'; }; @@ -3878,7 +5061,7 @@ export type ListAnonymousTenantsApiV1TenantsAnonymousListGetResponses = { export type ListAnonymousTenantsApiV1TenantsAnonymousListGetResponse = ListAnonymousTenantsApiV1TenantsAnonymousListGetResponses[keyof ListAnonymousTenantsApiV1TenantsAnonymousListGetResponses]; -export type GetDepartmentsApiV1DepartmentsDepartmentsGetData = { +export type GetDepartmentsApiV1DepartmentsGetData = { body?: never; path?: never; query?: { @@ -3925,71 +5108,71 @@ export type GetDepartmentsApiV1DepartmentsDepartmentsGetData = { */ code_like?: string | null; }; - url: '/api/v1/departments/departments/'; + url: '/api/v1/departments'; }; -export type GetDepartmentsApiV1DepartmentsDepartmentsGetErrors = { +export type GetDepartmentsApiV1DepartmentsGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetDepartmentsApiV1DepartmentsDepartmentsGetError = GetDepartmentsApiV1DepartmentsDepartmentsGetErrors[keyof GetDepartmentsApiV1DepartmentsDepartmentsGetErrors]; +export type GetDepartmentsApiV1DepartmentsGetError = GetDepartmentsApiV1DepartmentsGetErrors[keyof GetDepartmentsApiV1DepartmentsGetErrors]; -export type GetDepartmentsApiV1DepartmentsDepartmentsGetResponses = { +export type GetDepartmentsApiV1DepartmentsGetResponses = { /** * Successful Response */ - 200: PageDepartmentResponse; + 200: PagedResponseDepartmentResponse; }; -export type GetDepartmentsApiV1DepartmentsDepartmentsGetResponse = GetDepartmentsApiV1DepartmentsDepartmentsGetResponses[keyof GetDepartmentsApiV1DepartmentsDepartmentsGetResponses]; +export type GetDepartmentsApiV1DepartmentsGetResponse = GetDepartmentsApiV1DepartmentsGetResponses[keyof GetDepartmentsApiV1DepartmentsGetResponses]; -export type CreateDepartmentApiV1DepartmentsDepartmentsPostData = { +export type CreateDepartmentApiV1DepartmentsPostData = { body: DepartmentCreate; path?: never; query?: never; - url: '/api/v1/departments/departments/'; + url: '/api/v1/departments'; }; -export type CreateDepartmentApiV1DepartmentsDepartmentsPostErrors = { +export type CreateDepartmentApiV1DepartmentsPostErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type CreateDepartmentApiV1DepartmentsDepartmentsPostError = CreateDepartmentApiV1DepartmentsDepartmentsPostErrors[keyof CreateDepartmentApiV1DepartmentsDepartmentsPostErrors]; +export type CreateDepartmentApiV1DepartmentsPostError = CreateDepartmentApiV1DepartmentsPostErrors[keyof CreateDepartmentApiV1DepartmentsPostErrors]; -export type CreateDepartmentApiV1DepartmentsDepartmentsPostResponses = { +export type CreateDepartmentApiV1DepartmentsPostResponses = { /** * Successful Response */ 201: DepartmentResponse; }; -export type CreateDepartmentApiV1DepartmentsDepartmentsPostResponse = CreateDepartmentApiV1DepartmentsDepartmentsPostResponses[keyof CreateDepartmentApiV1DepartmentsDepartmentsPostResponses]; +export type CreateDepartmentApiV1DepartmentsPostResponse = CreateDepartmentApiV1DepartmentsPostResponses[keyof CreateDepartmentApiV1DepartmentsPostResponses]; -export type GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetData = { +export type GetDepartmentTreeApiV1DepartmentsTreeGetData = { body?: never; path?: never; query?: never; - url: '/api/v1/departments/departments/tree'; + url: '/api/v1/departments/tree'; }; -export type GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetResponses = { +export type GetDepartmentTreeApiV1DepartmentsTreeGetResponses = { /** - * Response Get Department Tree Api V1 Departments Departments Tree Get + * Response Get Department Tree Api V1 Departments Tree Get * * Successful Response */ 200: Array; }; -export type GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetResponse = GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetResponses[keyof GetDepartmentTreeApiV1DepartmentsDepartmentsTreeGetResponses]; +export type GetDepartmentTreeApiV1DepartmentsTreeGetResponse = GetDepartmentTreeApiV1DepartmentsTreeGetResponses[keyof GetDepartmentTreeApiV1DepartmentsTreeGetResponses]; -export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteData = { +export type DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteData = { body?: never; path: { /** @@ -3998,28 +5181,28 @@ export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteData = department_id: string; }; query?: never; - url: '/api/v1/departments/departments/{department_id}'; + url: '/api/v1/departments/{department_id}'; }; -export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteErrors = { +export type DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteError = DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteErrors[keyof DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteErrors]; +export type DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteError = DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteErrors[keyof DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteErrors]; -export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteResponses = { +export type DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteResponses = { /** * Successful Response */ 204: void; }; -export type DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteResponse = DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteResponses[keyof DeleteDepartmentApiV1DepartmentsDepartmentsDepartmentIdDeleteResponses]; +export type DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteResponse = DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteResponses[keyof DeleteDepartmentApiV1DepartmentsDepartmentIdDeleteResponses]; -export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetData = { +export type GetDepartmentApiV1DepartmentsDepartmentIdGetData = { body?: never; path: { /** @@ -4028,28 +5211,28 @@ export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetData = { department_id: string; }; query?: never; - url: '/api/v1/departments/departments/{department_id}'; + url: '/api/v1/departments/{department_id}'; }; -export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetErrors = { +export type GetDepartmentApiV1DepartmentsDepartmentIdGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetError = GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetErrors[keyof GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetErrors]; +export type GetDepartmentApiV1DepartmentsDepartmentIdGetError = GetDepartmentApiV1DepartmentsDepartmentIdGetErrors[keyof GetDepartmentApiV1DepartmentsDepartmentIdGetErrors]; -export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetResponses = { +export type GetDepartmentApiV1DepartmentsDepartmentIdGetResponses = { /** * Successful Response */ 200: DepartmentResponse; }; -export type GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetResponse = GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetResponses[keyof GetDepartmentApiV1DepartmentsDepartmentsDepartmentIdGetResponses]; +export type GetDepartmentApiV1DepartmentsDepartmentIdGetResponse = GetDepartmentApiV1DepartmentsDepartmentIdGetResponses[keyof GetDepartmentApiV1DepartmentsDepartmentIdGetResponses]; -export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutData = { +export type UpdateDepartmentApiV1DepartmentsDepartmentIdPutData = { body: DepartmentUpdate; path: { /** @@ -4058,28 +5241,28 @@ export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutData = { department_id: string; }; query?: never; - url: '/api/v1/departments/departments/{department_id}'; + url: '/api/v1/departments/{department_id}'; }; -export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutErrors = { +export type UpdateDepartmentApiV1DepartmentsDepartmentIdPutErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutError = UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutErrors[keyof UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutErrors]; +export type UpdateDepartmentApiV1DepartmentsDepartmentIdPutError = UpdateDepartmentApiV1DepartmentsDepartmentIdPutErrors[keyof UpdateDepartmentApiV1DepartmentsDepartmentIdPutErrors]; -export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutResponses = { +export type UpdateDepartmentApiV1DepartmentsDepartmentIdPutResponses = { /** * Successful Response */ 200: DepartmentResponse; }; -export type UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutResponse = UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutResponses[keyof UpdateDepartmentApiV1DepartmentsDepartmentsDepartmentIdPutResponses]; +export type UpdateDepartmentApiV1DepartmentsDepartmentIdPutResponse = UpdateDepartmentApiV1DepartmentsDepartmentIdPutResponses[keyof UpdateDepartmentApiV1DepartmentsDepartmentIdPutResponses]; -export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchData = { +export type UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchData = { body?: never; path: { /** @@ -4095,28 +5278,28 @@ export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPat */ order_index: number; }; - url: '/api/v1/departments/departments/{department_id}/order'; + url: '/api/v1/departments/{department_id}/order'; }; -export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchErrors = { +export type UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchError = UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchErrors[keyof UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchErrors]; +export type UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchError = UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchErrors[keyof UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchErrors]; -export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchResponses = { +export type UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchResponses = { /** * Successful Response */ 200: DepartmentResponse; }; -export type UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchResponse = UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchResponses[keyof UpdateDepartmentOrderApiV1DepartmentsDepartmentsDepartmentIdOrderPatchResponses]; +export type UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchResponse = UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchResponses[keyof UpdateDepartmentOrderApiV1DepartmentsDepartmentIdOrderPatchResponses]; -export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchData = { +export type UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchData = { body?: never; path: { /** @@ -4132,28 +5315,28 @@ export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusP */ status: string; }; - url: '/api/v1/departments/departments/{department_id}/status'; + url: '/api/v1/departments/{department_id}/status'; }; -export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchErrors = { +export type UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchError = UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchErrors[keyof UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchErrors]; +export type UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchError = UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchErrors[keyof UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchErrors]; -export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchResponses = { +export type UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchResponses = { /** * Successful Response */ 200: DepartmentResponse; }; -export type UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchResponse = UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchResponses[keyof UpdateDepartmentStatusApiV1DepartmentsDepartmentsDepartmentIdStatusPatchResponses]; +export type UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchResponse = UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchResponses[keyof UpdateDepartmentStatusApiV1DepartmentsDepartmentIdStatusPatchResponses]; -export type GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetData = { +export type GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetData = { body?: never; path: { /** @@ -4162,29 +5345,247 @@ export type GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersC department_id: string; }; query?: never; - url: '/api/v1/departments/departments/{department_id}/users-count'; + url: '/api/v1/departments/{department_id}/users-count'; }; -export type GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetErrors = { +export type GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetError = GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetErrors[keyof GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetErrors]; +export type GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetError = GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetErrors[keyof GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetErrors]; -export type GetDepartmentUsersCountApiV1DepartmentsDepartmentsDepartmentIdUsersCountGetResponses = { +export type GetDepartmentUsersCountApiV1DepartmentsDepartmentIdUsersCountGetResponses = { /** * Successful Response */ 200: unknown; }; -export type GetLoginLogsApiV1LogsLogsLoginGetData = { +export type ListLoginLogsApiV1LogsLoginLoginLogsGetData = { body?: never; path?: never; query?: { + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Keyword + * + * 关键词搜索 + */ + keyword?: string | null; + /** + * Start Time + * + * 开始时间 + */ + start_time?: string | null; + /** + * End Time + * + * 结束时间 + */ + end_time?: string | null; + /** + * User Id + * + * 用户ID + */ + user_id?: string | null; + /** + * Ip Address + * + * IP地址 + */ + ip_address?: string | null; + /** + * Status + * + * 登录状态 + */ + status?: string | null; + /** + * Method + * + * 登录方式 + */ + method?: string | null; + /** + * Is Suspicious + * + * 是否可疑 + */ + is_suspicious?: boolean | null; + }; + url: '/api/v1/logs/login/login-logs'; +}; + +export type ListLoginLogsApiV1LogsLoginLoginLogsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListLoginLogsApiV1LogsLoginLoginLogsGetError = ListLoginLogsApiV1LogsLoginLoginLogsGetErrors[keyof ListLoginLogsApiV1LogsLoginLoginLogsGetErrors]; + +export type ListLoginLogsApiV1LogsLoginLoginLogsGetResponses = { + /** + * Response List Login Logs Api V1 Logs Login Login Logs Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type ListLoginLogsApiV1LogsLoginLoginLogsGetResponse = ListLoginLogsApiV1LogsLoginLoginLogsGetResponses[keyof ListLoginLogsApiV1LogsLoginLoginLogsGetResponses]; + +export type GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetData = { + body?: never; + path?: never; + query?: { + /** + * Start Date + * + * 开始日期 + */ + start_date?: string | null; + /** + * End Date + * + * 结束日期 + */ + end_date?: string | null; + }; + url: '/api/v1/logs/login/login-logs/statistics'; +}; + +export type GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetError = GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetErrors[keyof GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetErrors]; + +export type GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetResponses = { + /** + * Successful Response + */ + 200: LoginLogStatistics; +}; + +export type GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetResponse = GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetResponses[keyof GetLoginStatisticsApiV1LogsLoginLoginLogsStatisticsGetResponses]; + +export type ExportLoginLogsApiV1LogsLoginLoginLogsExportGetData = { + body?: never; + path?: never; + query?: { + /** + * Start Time + * + * 开始时间 + */ + start_time?: string | null; + /** + * End Time + * + * 结束时间 + */ + end_time?: string | null; + /** + * User Id + * + * 用户ID + */ + user_id?: string | null; + /** + * Format + * + * 导出格式 + */ + format?: string; + }; + url: '/api/v1/logs/login/login-logs/export'; +}; + +export type ExportLoginLogsApiV1LogsLoginLoginLogsExportGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ExportLoginLogsApiV1LogsLoginLoginLogsExportGetError = ExportLoginLogsApiV1LogsLoginLoginLogsExportGetErrors[keyof ExportLoginLogsApiV1LogsLoginLoginLogsExportGetErrors]; + +export type ExportLoginLogsApiV1LogsLoginLoginLogsExportGetResponses = { + /** + * Successful Response + */ + 200: unknown; +}; + +export type GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetData = { + body?: never; + path?: never; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + }; + url: '/api/v1/logs/login/login-logs/suspicious'; +}; + +export type GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetError = GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetErrors[keyof GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetErrors]; + +export type GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetResponses = { + /** + * Response Get Suspicious Logins Api V1 Logs Login Login Logs Suspicious Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetResponse = GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetResponses[keyof GetSuspiciousLoginsApiV1LogsLoginLoginLogsSuspiciousGetResponses]; + +export type GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetData = { + body?: never; + path?: never; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; /** * Username * @@ -4197,114 +5598,105 @@ export type GetLoginLogsApiV1LogsLogsLoginGetData = { * IP地址 */ ip_address?: string | null; + }; + url: '/api/v1/logs/login/login-logs/failed-attempts'; +}; + +export type GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetError = GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetErrors[keyof GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetErrors]; + +export type GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetResponses = { + /** + * Response Get Failed Login Attempts Api V1 Logs Login Login Logs Failed Attempts Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetResponse = GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetResponses[keyof GetFailedLoginAttemptsApiV1LogsLoginLoginLogsFailedAttemptsGetResponses]; + +export type GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetData = { + body?: never; + path: { /** - * Status - * - * 登录状态: success, failed, locked + * User Id */ - status?: string | null; + user_id: string; + }; + query?: { /** - * Is Suspicious + * Limit * - * 是否可疑 + * 记录数量限制 */ - is_suspicious?: boolean | null; + limit?: number; + }; + url: '/api/v1/logs/login/login-logs/user/{user_id}/history'; +}; + +export type GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetError = GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetErrors[keyof GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetErrors]; + +export type GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetResponses = { + /** + * Response Get User Login History Api V1 Logs Login Login Logs User User Id History Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetResponse = GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetResponses[keyof GetUserLoginHistoryApiV1LogsLoginLoginLogsUserUserIdHistoryGetResponses]; + +export type ListOperationLogsApiV1LogsOperationOperationLogsGetData = { + body?: never; + path?: never; + query?: { + /** + * Keyword + * + * 关键词搜索 + */ + keyword?: string | null; /** * Start Time * - * 开始时间 (YYYY-MM-DD HH:MM:SS) + * 开始时间 */ start_time?: string | null; /** * End Time * - * 结束时间 (YYYY-MM-DD HH:MM:SS) + * 结束时间 */ end_time?: string | null; - /** - * Skip - * - * 跳过记录数 - */ - skip?: number; - /** - * Limit - * - * 限制记录数 - */ - limit?: number; - }; - url: '/api/v1/logs/logs/login'; -}; - -export type GetLoginLogsApiV1LogsLogsLoginGetErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetLoginLogsApiV1LogsLogsLoginGetError = GetLoginLogsApiV1LogsLogsLoginGetErrors[keyof GetLoginLogsApiV1LogsLogsLoginGetErrors]; - -export type GetLoginLogsApiV1LogsLogsLoginGetResponses = { - /** - * Successful Response - */ - 200: LogListResponse; -}; - -export type GetLoginLogsApiV1LogsLogsLoginGetResponse = GetLoginLogsApiV1LogsLogsLoginGetResponses[keyof GetLoginLogsApiV1LogsLogsLoginGetResponses]; - -export type GetLoginLogApiV1LogsLogsLoginLogIdGetData = { - body?: never; - path: { - /** - * Log Id - */ - log_id: string; - }; - query?: never; - url: '/api/v1/logs/logs/login/{log_id}'; -}; - -export type GetLoginLogApiV1LogsLogsLoginLogIdGetErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetLoginLogApiV1LogsLogsLoginLogIdGetError = GetLoginLogApiV1LogsLogsLoginLogIdGetErrors[keyof GetLoginLogApiV1LogsLogsLoginLogIdGetErrors]; - -export type GetLoginLogApiV1LogsLogsLoginLogIdGetResponses = { - /** - * Successful Response - */ - 200: LoginLog; -}; - -export type GetLoginLogApiV1LogsLogsLoginLogIdGetResponse = GetLoginLogApiV1LogsLogsLoginLogIdGetResponses[keyof GetLoginLogApiV1LogsLogsLoginLogIdGetResponses]; - -export type GetOperationLogsApiV1LogsLogsOperationGetData = { - body?: never; - path?: never; - query?: { /** * User Id * * 用户ID */ user_id?: string | null; - /** - * Username - * - * 用户名 - */ - username?: string | null; /** * Operation Type * - * 操作类型: create, read, update, delete, export, import, config, auth + * 操作类型 */ operation_type?: string | null; /** @@ -4319,96 +5711,342 @@ export type GetOperationLogsApiV1LogsLogsOperationGetData = { * 操作动作 */ action?: string | null; + /** + * Request Method + * + * 请求方法 + */ + request_method?: string | null; /** * Response Status * * 响应状态码 */ response_status?: number | null; + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; + }; + url: '/api/v1/logs/operation/operation-logs'; +}; + +export type ListOperationLogsApiV1LogsOperationOperationLogsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListOperationLogsApiV1LogsOperationOperationLogsGetError = ListOperationLogsApiV1LogsOperationOperationLogsGetErrors[keyof ListOperationLogsApiV1LogsOperationOperationLogsGetErrors]; + +export type ListOperationLogsApiV1LogsOperationOperationLogsGetResponses = { + /** + * Successful Response + */ + 200: PagedResponseOperationLogResponse; +}; + +export type ListOperationLogsApiV1LogsOperationOperationLogsGetResponse = ListOperationLogsApiV1LogsOperationOperationLogsGetResponses[keyof ListOperationLogsApiV1LogsOperationOperationLogsGetResponses]; + +export type GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetData = { + body?: never; + path?: never; + query?: { + /** + * Start Date + * + * 开始日期 + */ + start_date?: string | null; + /** + * End Date + * + * 结束日期 + */ + end_date?: string | null; + }; + url: '/api/v1/logs/operation/operation-logs/statistics'; +}; + +export type GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetError = GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetErrors[keyof GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetErrors]; + +export type GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetResponses = { + /** + * Successful Response + */ + 200: OperationLogStatistics; +}; + +export type GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetResponse = GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetResponses[keyof GetOperationStatisticsApiV1LogsOperationOperationLogsStatisticsGetResponses]; + +export type ExportOperationLogsApiV1LogsOperationOperationLogsExportGetData = { + body?: never; + path?: never; + query?: { /** * Start Time * - * 开始时间 (YYYY-MM-DD HH:MM:SS) + * 开始时间 */ start_time?: string | null; /** * End Time * - * 结束时间 (YYYY-MM-DD HH:MM:SS) + * 结束时间 */ end_time?: string | null; /** - * Skip + * User Id * - * 跳过记录数 + * 用户ID */ - skip?: number; + user_id?: string | null; /** - * Limit + * Format * - * 限制记录数 + * 导出格式 */ - limit?: number; + format?: string; }; - url: '/api/v1/logs/logs/operation'; + url: '/api/v1/logs/operation/operation-logs/export'; }; -export type GetOperationLogsApiV1LogsLogsOperationGetErrors = { +export type ExportOperationLogsApiV1LogsOperationOperationLogsExportGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetOperationLogsApiV1LogsLogsOperationGetError = GetOperationLogsApiV1LogsLogsOperationGetErrors[keyof GetOperationLogsApiV1LogsLogsOperationGetErrors]; +export type ExportOperationLogsApiV1LogsOperationOperationLogsExportGetError = ExportOperationLogsApiV1LogsOperationOperationLogsExportGetErrors[keyof ExportOperationLogsApiV1LogsOperationOperationLogsExportGetErrors]; -export type GetOperationLogsApiV1LogsLogsOperationGetResponses = { +export type ExportOperationLogsApiV1LogsOperationOperationLogsExportGetResponses = { /** * Successful Response */ - 200: LogListResponse; + 200: unknown; }; -export type GetOperationLogsApiV1LogsLogsOperationGetResponse = GetOperationLogsApiV1LogsLogsOperationGetResponses[keyof GetOperationLogsApiV1LogsLogsOperationGetResponses]; - -export type GetOperationLogApiV1LogsLogsOperationLogIdGetData = { - body?: never; - path: { - /** - * Log Id - */ - log_id: string; - }; - query?: never; - url: '/api/v1/logs/logs/operation/{log_id}'; -}; - -export type GetOperationLogApiV1LogsLogsOperationLogIdGetErrors = { - /** - * Validation Error - */ - 422: HttpValidationError; -}; - -export type GetOperationLogApiV1LogsLogsOperationLogIdGetError = GetOperationLogApiV1LogsLogsOperationLogIdGetErrors[keyof GetOperationLogApiV1LogsLogsOperationLogIdGetErrors]; - -export type GetOperationLogApiV1LogsLogsOperationLogIdGetResponses = { - /** - * Successful Response - */ - 200: OperationLog; -}; - -export type GetOperationLogApiV1LogsLogsOperationLogIdGetResponse = GetOperationLogApiV1LogsLogsOperationLogIdGetResponses[keyof GetOperationLogApiV1LogsLogsOperationLogIdGetResponses]; - -export type GetNetworkLogsApiV1LogsLogsNetworkGetData = { +export type GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetData = { body?: never; path?: never; query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + /** + * Module + * + * 操作模块 + */ + module?: string | null; + /** + * User Id + * + * 用户ID + */ + user_id?: string | null; + }; + url: '/api/v1/logs/operation/operation-logs/errors'; +}; + +export type GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetError = GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetErrors[keyof GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetErrors]; + +export type GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetResponses = { + /** + * Response Get Error Operations Api V1 Logs Operation Operation Logs Errors Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetResponse = GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetResponses[keyof GetErrorOperationsApiV1LogsOperationOperationLogsErrorsGetResponses]; + +export type GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetData = { + body?: never; + path: { + /** + * Module + */ + module: string; + }; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + /** + * Operation Type + * + * 操作类型 + */ + operation_type?: string | null; + }; + url: '/api/v1/logs/operation/operation-logs/module/{module}/history'; +}; + +export type GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetError = GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetErrors[keyof GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetErrors]; + +export type GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetResponses = { + /** + * Response Get Module Operations Api V1 Logs Operation Operation Logs Module Module History Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetResponse = GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetResponses[keyof GetModuleOperationsApiV1LogsOperationOperationLogsModuleModuleHistoryGetResponses]; + +export type GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: { + /** + * Limit + * + * 记录数量限制 + */ + limit?: number; + /** + * Module + * + * 操作模块 + */ + module?: string | null; + }; + url: '/api/v1/logs/operation/operation-logs/user/{user_id}/history'; +}; + +export type GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetError = GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetErrors[keyof GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetErrors]; + +export type GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetResponses = { + /** + * Response Get User Operation History Api V1 Logs Operation Operation Logs User User Id History Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetResponse = GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetResponses[keyof GetUserOperationHistoryApiV1LogsOperationOperationLogsUserUserIdHistoryGetResponses]; + +export type ListNetworkLogsApiV1LogsNetworkNetworkLogsGetData = { + body?: never; + path?: never; + query?: { + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Keyword + * + * 关键词搜索 + */ + keyword?: string | null; + /** + * Start Time + * + * 开始时间 + */ + start_time?: string | null; + /** + * End Time + * + * 结束时间 + */ + end_time?: string | null; + /** + * User Id + * + * 用户ID + */ + user_id?: string | null; + /** + * Ip Address + * + * IP地址 + */ + ip_address?: string | null; /** * Request Method * - * 请求方法: GET, POST, PUT, DELETE, PATCH + * 请求方法 */ request_method?: string | null; /** @@ -4417,12 +6055,6 @@ export type GetNetworkLogsApiV1LogsLogsNetworkGetData = { * 请求路径 */ request_path?: string | null; - /** - * Client Ip - * - * 客户端IP - */ - client_ip?: string | null; /** * Response Status * @@ -4435,109 +6067,513 @@ export type GetNetworkLogsApiV1LogsLogsNetworkGetData = { * 是否错误 */ is_error?: boolean | null; + }; + url: '/api/v1/logs/network/network-logs'; +}; + +export type ListNetworkLogsApiV1LogsNetworkNetworkLogsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListNetworkLogsApiV1LogsNetworkNetworkLogsGetError = ListNetworkLogsApiV1LogsNetworkNetworkLogsGetErrors[keyof ListNetworkLogsApiV1LogsNetworkNetworkLogsGetErrors]; + +export type ListNetworkLogsApiV1LogsNetworkNetworkLogsGetResponses = { + /** + * Response List Network Logs Api V1 Logs Network Network Logs Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type ListNetworkLogsApiV1LogsNetworkNetworkLogsGetResponse = ListNetworkLogsApiV1LogsNetworkNetworkLogsGetResponses[keyof ListNetworkLogsApiV1LogsNetworkNetworkLogsGetResponses]; + +export type GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetData = { + body?: never; + path?: never; + query?: { /** - * Min Processing Time + * Start Date * - * 最小处理时间(秒) + * 开始日期 */ - min_processing_time?: number | null; + start_date?: string | null; /** - * Max Processing Time + * End Date * - * 最大处理时间(秒) + * 结束日期 */ - max_processing_time?: number | null; + end_date?: string | null; + }; + url: '/api/v1/logs/network/network-logs/statistics'; +}; + +export type GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetError = GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetErrors[keyof GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetErrors]; + +export type GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetResponses = { + /** + * Successful Response + */ + 200: NetworkLogStatistics; +}; + +export type GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetResponse = GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetResponses[keyof GetNetworkStatisticsApiV1LogsNetworkNetworkLogsStatisticsGetResponses]; + +export type ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetData = { + body?: never; + path?: never; + query?: { /** * Start Time * - * 开始时间 (YYYY-MM-DD HH:MM:SS) + * 开始时间 */ start_time?: string | null; /** * End Time * - * 结束时间 (YYYY-MM-DD HH:MM:SS) + * 结束时间 */ end_time?: string | null; /** - * Skip + * User Id * - * 跳过记录数 + * 用户ID */ - skip?: number; + user_id?: string | null; /** - * Limit + * Format * - * 限制记录数 + * 导出格式 */ - limit?: number; + format?: string; }; - url: '/api/v1/logs/logs/network'; + url: '/api/v1/logs/network/network-logs/export'; }; -export type GetNetworkLogsApiV1LogsLogsNetworkGetErrors = { +export type ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetNetworkLogsApiV1LogsLogsNetworkGetError = GetNetworkLogsApiV1LogsLogsNetworkGetErrors[keyof GetNetworkLogsApiV1LogsLogsNetworkGetErrors]; +export type ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetError = ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetErrors[keyof ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetErrors]; -export type GetNetworkLogsApiV1LogsLogsNetworkGetResponses = { +export type ExportNetworkLogsApiV1LogsNetworkNetworkLogsExportGetResponses = { /** * Successful Response */ - 200: LogListResponse; + 200: unknown; }; -export type GetNetworkLogsApiV1LogsLogsNetworkGetResponse = GetNetworkLogsApiV1LogsLogsNetworkGetResponses[keyof GetNetworkLogsApiV1LogsLogsNetworkGetResponses]; +export type GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetData = { + body?: never; + path?: never; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + /** + * Status Code + * + * 特定状态码 + */ + status_code?: number | null; + }; + url: '/api/v1/logs/network/network-logs/errors'; +}; -export type GetNetworkLogApiV1LogsLogsNetworkLogIdGetData = { +export type GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetError = GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetErrors[keyof GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetErrors]; + +export type GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetResponses = { + /** + * Response Get Error Requests Api V1 Logs Network Network Logs Errors Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetResponse = GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetResponses[keyof GetErrorRequestsApiV1LogsNetworkNetworkLogsErrorsGetResponses]; + +export type GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetData = { + body?: never; + path?: never; + query?: { + /** + * Threshold Seconds + * + * 阈值(秒) + */ + threshold_seconds?: number; + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + }; + url: '/api/v1/logs/network/network-logs/slow'; +}; + +export type GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetError = GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetErrors[keyof GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetErrors]; + +export type GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetResponses = { + /** + * Response Get Slow Requests Api V1 Logs Network Network Logs Slow Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetResponse = GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetResponses[keyof GetSlowRequestsApiV1LogsNetworkNetworkLogsSlowGetResponses]; + +export type GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetData = { body?: never; path: { /** - * Log Id + * Ip Address */ - log_id: string; + ip_address: string; }; - query?: never; - url: '/api/v1/logs/logs/network/{log_id}'; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + }; + url: '/api/v1/logs/network/network-logs/ip/{ip_address}/activity'; }; -export type GetNetworkLogApiV1LogsLogsNetworkLogIdGetErrors = { +export type GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetNetworkLogApiV1LogsLogsNetworkLogIdGetError = GetNetworkLogApiV1LogsLogsNetworkLogIdGetErrors[keyof GetNetworkLogApiV1LogsLogsNetworkLogIdGetErrors]; +export type GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetError = GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetErrors[keyof GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetErrors]; -export type GetNetworkLogApiV1LogsLogsNetworkLogIdGetResponses = { +export type GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetResponses = { + /** + * Response Get Ip Activity Api V1 Logs Network Network Logs Ip Ip Address Activity Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetResponse = GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetResponses[keyof GetIpActivityApiV1LogsNetworkNetworkLogsIpIpAddressActivityGetResponses]; + +export type GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetData = { + body?: never; + path: { + /** + * Endpoint + */ + endpoint: string; + }; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + }; + url: '/api/v1/logs/network/network-logs/endpoint/{endpoint}/statistics'; +}; + +export type GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetError = GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetErrors[keyof GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetErrors]; + +export type GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetResponses = { + /** + * Response Get Endpoint Statistics Api V1 Logs Network Network Logs Endpoint Endpoint Statistics Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetResponse = GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetResponses[keyof GetEndpointStatisticsApiV1LogsNetworkNetworkLogsEndpointEndpointStatisticsGetResponses]; + +export type SearchLogsApiV1LogsQueryLogTypeGetData = { + body?: never; + path: { + /** + * Log Type + */ + log_type: string; + }; + query?: { + /** + * Page + * + * 页码 + */ + page?: number; + /** + * Size + * + * 每页数量 + */ + size?: number; + /** + * Keyword + * + * 关键词搜索 + */ + keyword?: string | null; + /** + * Start Time + * + * 开始时间 + */ + start_time?: string | null; + /** + * End Time + * + * 结束时间 + */ + end_time?: string | null; + /** + * User Id + * + * 用户ID + */ + user_id?: string | null; + /** + * Ip Address + * + * IP地址 + */ + ip_address?: string | null; + }; + url: '/api/v1/logs/query/{log_type}'; +}; + +export type SearchLogsApiV1LogsQueryLogTypeGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SearchLogsApiV1LogsQueryLogTypeGetError = SearchLogsApiV1LogsQueryLogTypeGetErrors[keyof SearchLogsApiV1LogsQueryLogTypeGetErrors]; + +export type SearchLogsApiV1LogsQueryLogTypeGetResponses = { + /** + * Response Search Logs Api V1 Logs Query Log Type Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type SearchLogsApiV1LogsQueryLogTypeGetResponse = SearchLogsApiV1LogsQueryLogTypeGetResponses[keyof SearchLogsApiV1LogsQueryLogTypeGetResponses]; + +export type ExportLogsApiV1LogsQueryLogTypeExportPostData = { + body: LogExportRequest; + path: { + /** + * Log Type + */ + log_type: string; + }; + query?: never; + url: '/api/v1/logs/query/{log_type}/export'; +}; + +export type ExportLogsApiV1LogsQueryLogTypeExportPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ExportLogsApiV1LogsQueryLogTypeExportPostError = ExportLogsApiV1LogsQueryLogTypeExportPostErrors[keyof ExportLogsApiV1LogsQueryLogTypeExportPostErrors]; + +export type ExportLogsApiV1LogsQueryLogTypeExportPostResponses = { /** * Successful Response */ - 200: NetworkLog; + 200: unknown; }; -export type GetNetworkLogApiV1LogsLogsNetworkLogIdGetResponse = GetNetworkLogApiV1LogsLogsNetworkLogIdGetResponses[keyof GetNetworkLogApiV1LogsLogsNetworkLogIdGetResponses]; - -export type GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetData = { +export type GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetData = { body?: never; path?: never; - query?: never; - url: '/api/v1/logs/logs/network/stats/performance'; + query?: { + /** + * Start Date + * + * 开始日期 + */ + start_date?: string | null; + /** + * End Date + * + * 结束日期 + */ + end_date?: string | null; + }; + url: '/api/v1/logs/query/statistics/comprehensive'; }; -export type GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetResponses = { +export type GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetErrors = { /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetError = GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetErrors[keyof GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetErrors]; + +export type GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetResponses = { + /** + * Response Get Comprehensive Statistics Api V1 Logs Query Statistics Comprehensive Get + * * Successful Response */ - 200: PerformanceStats; + 200: { + [key: string]: unknown; + }; }; -export type GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetResponse = GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetResponses[keyof GetPerformanceStatsApiV1LogsLogsNetworkStatsPerformanceGetResponses]; +export type GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetResponse = GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetResponses[keyof GetComprehensiveStatisticsApiV1LogsQueryStatisticsComprehensiveGetResponses]; + +export type GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetData = { + body?: never; + path: { + /** + * User Id + */ + user_id: string; + }; + query?: { + /** + * Hours + * + * 时间范围(小时) + */ + hours?: number; + }; + url: '/api/v1/logs/query/user/{user_id}/activity'; +}; + +export type GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetError = GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetErrors[keyof GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetErrors]; + +export type GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetResponses = { + /** + * Response Get User Activity Summary Api V1 Logs Query User User Id Activity Get + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetResponse = GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetResponses[keyof GetUserActivitySummaryApiV1LogsQueryUserUserIdActivityGetResponses]; + +export type CleanupOldLogsApiV1LogsQueryCleanupPostData = { + body?: never; + path?: never; + query?: { + /** + * Days + * + * 保留天数 + */ + days?: number; + /** + * Log Types + * + * 日志类型,逗号分隔 + */ + log_types?: string; + }; + url: '/api/v1/logs/query/cleanup'; +}; + +export type CleanupOldLogsApiV1LogsQueryCleanupPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CleanupOldLogsApiV1LogsQueryCleanupPostError = CleanupOldLogsApiV1LogsQueryCleanupPostErrors[keyof CleanupOldLogsApiV1LogsQueryCleanupPostErrors]; + +export type CleanupOldLogsApiV1LogsQueryCleanupPostResponses = { + /** + * Response Cleanup Old Logs Api V1 Logs Query Cleanup Post + * + * Successful Response + */ + 200: { + [key: string]: unknown; + }; +}; + +export type CleanupOldLogsApiV1LogsQueryCleanupPostResponse = CleanupOldLogsApiV1LogsQueryCleanupPostResponses[keyof CleanupOldLogsApiV1LogsQueryCleanupPostResponses]; export type SendMessageApiV1MessagesSendPostData = { body: MessageSendRequest; @@ -4645,7 +6681,7 @@ export type RetryFailedMessageApiV1MessagesMessageIdRetryPostResponses = { 200: unknown; }; -export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetData = { +export type ListTemplatesApiV1MessagesTemplatesGetData = { body?: never; path?: never; query?: { @@ -4668,67 +6704,77 @@ export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetData = { */ is_active?: boolean | null; /** - * Skip + * Page * - * 跳过数量 + * 页码 */ - skip?: number; + page?: number; /** - * Limit + * Size * - * 限制数量 + * 每页数量 */ - limit?: number; + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; }; - url: '/api/v1/messages/templates/message-templates'; + url: '/api/v1/messages/templates'; }; -export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetErrors = { +export type ListTemplatesApiV1MessagesTemplatesGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetError = ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetErrors[keyof ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetErrors]; +export type ListTemplatesApiV1MessagesTemplatesGetError = ListTemplatesApiV1MessagesTemplatesGetErrors[keyof ListTemplatesApiV1MessagesTemplatesGetErrors]; -export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetResponses = { +export type ListTemplatesApiV1MessagesTemplatesGetResponses = { /** - * Response List Templates Api V1 Messages Templates Message Templates Get - * * Successful Response */ - 200: Array; + 200: PagedResponseMessageTemplateResponse; }; -export type ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetResponse = ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetResponses[keyof ListTemplatesApiV1MessagesTemplatesMessageTemplatesGetResponses]; +export type ListTemplatesApiV1MessagesTemplatesGetResponse = ListTemplatesApiV1MessagesTemplatesGetResponses[keyof ListTemplatesApiV1MessagesTemplatesGetResponses]; -export type CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostData = { +export type CreateTemplateApiV1MessagesTemplatesPostData = { body: MessageTemplateCreate; path?: never; query?: never; - url: '/api/v1/messages/templates/message-templates'; + url: '/api/v1/messages/templates'; }; -export type CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostErrors = { +export type CreateTemplateApiV1MessagesTemplatesPostErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostError = CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostErrors[keyof CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostErrors]; +export type CreateTemplateApiV1MessagesTemplatesPostError = CreateTemplateApiV1MessagesTemplatesPostErrors[keyof CreateTemplateApiV1MessagesTemplatesPostErrors]; -export type CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostResponses = { +export type CreateTemplateApiV1MessagesTemplatesPostResponses = { /** * Successful Response */ 201: MessageTemplateResponse; }; -export type CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostResponse = CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostResponses[keyof CreateTemplateApiV1MessagesTemplatesMessageTemplatesPostResponses]; +export type CreateTemplateApiV1MessagesTemplatesPostResponse = CreateTemplateApiV1MessagesTemplatesPostResponses[keyof CreateTemplateApiV1MessagesTemplatesPostResponses]; -export type DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteData = { +export type DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteData = { body?: never; path: { /** @@ -4737,26 +6783,28 @@ export type DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDelete template_id: string; }; query?: never; - url: '/api/v1/messages/templates/message-templates/{template_id}'; + url: '/api/v1/messages/templates/{template_id}'; }; -export type DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteErrors = { +export type DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteError = DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteErrors[keyof DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteErrors]; +export type DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteError = DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteErrors[keyof DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteErrors]; -export type DeleteTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdDeleteResponses = { +export type DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteResponses = { /** * Successful Response */ - 200: unknown; + 204: void; }; -export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetData = { +export type DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteResponse = DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteResponses[keyof DeleteTemplateApiV1MessagesTemplatesTemplateIdDeleteResponses]; + +export type GetTemplateApiV1MessagesTemplatesTemplateIdGetData = { body?: never; path: { /** @@ -4765,28 +6813,28 @@ export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetData = template_id: string; }; query?: never; - url: '/api/v1/messages/templates/message-templates/{template_id}'; + url: '/api/v1/messages/templates/{template_id}'; }; -export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetErrors = { +export type GetTemplateApiV1MessagesTemplatesTemplateIdGetErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetError = GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetErrors[keyof GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetErrors]; +export type GetTemplateApiV1MessagesTemplatesTemplateIdGetError = GetTemplateApiV1MessagesTemplatesTemplateIdGetErrors[keyof GetTemplateApiV1MessagesTemplatesTemplateIdGetErrors]; -export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetResponses = { +export type GetTemplateApiV1MessagesTemplatesTemplateIdGetResponses = { /** * Successful Response */ 200: MessageTemplateResponse; }; -export type GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetResponse = GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetResponses[keyof GetTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdGetResponses]; +export type GetTemplateApiV1MessagesTemplatesTemplateIdGetResponse = GetTemplateApiV1MessagesTemplatesTemplateIdGetResponses[keyof GetTemplateApiV1MessagesTemplatesTemplateIdGetResponses]; -export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutData = { +export type UpdateTemplateApiV1MessagesTemplatesTemplateIdPutData = { body: MessageTemplateUpdate; path: { /** @@ -4795,28 +6843,28 @@ export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutDat template_id: string; }; query?: never; - url: '/api/v1/messages/templates/message-templates/{template_id}'; + url: '/api/v1/messages/templates/{template_id}'; }; -export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutErrors = { +export type UpdateTemplateApiV1MessagesTemplatesTemplateIdPutErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutError = UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutErrors[keyof UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutErrors]; +export type UpdateTemplateApiV1MessagesTemplatesTemplateIdPutError = UpdateTemplateApiV1MessagesTemplatesTemplateIdPutErrors[keyof UpdateTemplateApiV1MessagesTemplatesTemplateIdPutErrors]; -export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutResponses = { +export type UpdateTemplateApiV1MessagesTemplatesTemplateIdPutResponses = { /** * Successful Response */ 200: MessageTemplateResponse; }; -export type UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutResponse = UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutResponses[keyof UpdateTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdPutResponses]; +export type UpdateTemplateApiV1MessagesTemplatesTemplateIdPutResponse = UpdateTemplateApiV1MessagesTemplatesTemplateIdPutResponses[keyof UpdateTemplateApiV1MessagesTemplatesTemplateIdPutResponses]; -export type TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostData = { +export type TestTemplateApiV1MessagesTemplatesTemplateIdTestPostData = { /** * Test Variables */ @@ -4830,19 +6878,19 @@ export type TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPost template_id: string; }; query?: never; - url: '/api/v1/messages/templates/message-templates/{template_id}/test'; + url: '/api/v1/messages/templates/{template_id}/test'; }; -export type TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostErrors = { +export type TestTemplateApiV1MessagesTemplatesTemplateIdTestPostErrors = { /** * Validation Error */ 422: HttpValidationError; }; -export type TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostError = TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostErrors[keyof TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostErrors]; +export type TestTemplateApiV1MessagesTemplatesTemplateIdTestPostError = TestTemplateApiV1MessagesTemplatesTemplateIdTestPostErrors[keyof TestTemplateApiV1MessagesTemplatesTemplateIdTestPostErrors]; -export type TestTemplateApiV1MessagesTemplatesMessageTemplatesTemplateIdTestPostResponses = { +export type TestTemplateApiV1MessagesTemplatesTemplateIdTestPostResponses = { /** * Successful Response */ @@ -4884,17 +6932,29 @@ export type ListMessageLogsApiV1MessagesLogsMessageLogsGetData = { */ end_date?: string | null; /** - * Skip + * Page * - * 跳过数量 + * 页码 */ - skip?: number; + page?: number; /** - * Limit + * Size * - * 限制数量 + * 每页数量 */ - limit?: number; + size?: number; + /** + * Order By + * + * 排序字段 + */ + order_by?: string; + /** + * Sort Order + * + * 排序方向 (asc/desc) + */ + sort_order?: string; }; url: '/api/v1/messages/logs/message-logs'; }; @@ -4910,11 +6970,9 @@ export type ListMessageLogsApiV1MessagesLogsMessageLogsGetError = ListMessageLog export type ListMessageLogsApiV1MessagesLogsMessageLogsGetResponses = { /** - * Response List Message Logs Api V1 Messages Logs Message Logs Get - * * Successful Response */ - 200: Array; + 200: PagedResponseMessageLogResponse; }; export type ListMessageLogsApiV1MessagesLogsMessageLogsGetResponse = ListMessageLogsApiV1MessagesLogsMessageLogsGetResponses[keyof ListMessageLogsApiV1MessagesLogsMessageLogsGetResponses]; @@ -5084,13 +7142,13 @@ export type GetRecipientStatisticsApiV1MessagesLogsMessageLogsStatisticsRecipien export type GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetData = { body?: never; path?: never; - query: { + query?: { /** * Recipient * * 接收者 */ - recipient: string; + recipient?: string; }; url: '/api/v1/messages/logs/message-logs/unread/count'; }; @@ -5111,16 +7169,255 @@ export type GetUnreadCountApiV1MessagesLogsMessageLogsUnreadCountGetResponses = 200: unknown; }; +export type CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostData = { + body?: never; + path?: never; + query?: { + /** + * Days + * + * 保留天数 + */ + days?: number; + }; + url: '/api/v1/messages/logs/message-logs/cleanup'; +}; + +export type CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostError = CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostErrors[keyof CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostErrors]; + +export type CleanupOldLogsApiV1MessagesLogsMessageLogsCleanupPostResponses = { + /** + * Successful Response + */ + 200: unknown; +}; + +export type ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetData = { + body?: never; + path?: never; + query?: { + /** + * Service Type + */ + service_type?: ExternalServiceType | null; + /** + * Is Active + */ + is_active?: boolean | null; + }; + url: '/api/v1/messages/configs/configs'; +}; + +export type ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetError = ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetErrors[keyof ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetErrors]; + +export type ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetResponses = { + /** + * Response List External Service Configs Api V1 Messages Configs Configs Get + * + * Successful Response + */ + 200: Array; +}; + +export type ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetResponse = ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetResponses[keyof ListExternalServiceConfigsApiV1MessagesConfigsConfigsGetResponses]; + +export type CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostData = { + body: ExternalServiceConfigCreate; + path?: never; + query?: never; + url: '/api/v1/messages/configs/configs'; +}; + +export type CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostError = CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostErrors[keyof CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostErrors]; + +export type CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostResponses = { + /** + * Successful Response + */ + 201: ExternalServiceConfigResponse; +}; + +export type CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostResponse = CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostResponses[keyof CreateExternalServiceConfigApiV1MessagesConfigsConfigsPostResponses]; + +export type DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteData = { + body?: never; + path: { + /** + * Config Id + */ + config_id: string; + }; + query?: never; + url: '/api/v1/messages/configs/configs/{config_id}'; +}; + +export type DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteError = DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteErrors[keyof DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteErrors]; + +export type DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteResponses = { + /** + * Successful Response + */ + 204: void; +}; + +export type DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteResponse = DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteResponses[keyof DeleteExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdDeleteResponses]; + +export type GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetData = { + body?: never; + path: { + /** + * Config Id + */ + config_id: string; + }; + query?: never; + url: '/api/v1/messages/configs/configs/{config_id}'; +}; + +export type GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetError = GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetErrors[keyof GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetErrors]; + +export type GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetResponses = { + /** + * Successful Response + */ + 200: ExternalServiceConfigResponse; +}; + +export type GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetResponse = GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetResponses[keyof GetExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdGetResponses]; + +export type UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutData = { + body: ExternalServiceConfigUpdate; + path: { + /** + * Config Id + */ + config_id: string; + }; + query?: never; + url: '/api/v1/messages/configs/configs/{config_id}'; +}; + +export type UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutError = UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutErrors[keyof UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutErrors]; + +export type UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutResponses = { + /** + * Successful Response + */ + 200: ExternalServiceConfigResponse; +}; + +export type UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutResponse = UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutResponses[keyof UpdateExternalServiceConfigApiV1MessagesConfigsConfigsConfigIdPutResponses]; + +export type SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostData = { + body?: never; + path: { + /** + * Config Id + */ + config_id: string; + }; + query?: never; + url: '/api/v1/messages/configs/configs/{config_id}/set-default'; +}; + +export type SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostError = SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostErrors[keyof SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostErrors]; + +export type SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostResponses = { + /** + * Successful Response + */ + 200: ExternalServiceConfigResponse; +}; + +export type SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostResponse = SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostResponses[keyof SetDefaultServiceApiV1MessagesConfigsConfigsConfigIdSetDefaultPostResponses]; + +export type CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostData = { + body?: never; + path: { + /** + * Config Id + */ + config_id: string; + }; + query?: never; + url: '/api/v1/messages/configs/configs/{config_id}/health-check'; +}; + +export type CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostErrors = { + /** + * Validation Error + */ + 422: HttpValidationError; +}; + +export type CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostError = CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostErrors[keyof CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostErrors]; + +export type CheckServiceHealthApiV1MessagesConfigsConfigsConfigIdHealthCheckPostResponses = { + /** + * Successful Response + */ + 200: unknown; +}; + export type HealthCheckApiV1HealthGetData = { body?: never; path?: never; query?: never; - url: '/api/v1/health/'; + url: '/api/v1/health'; }; export type HealthCheckApiV1HealthGetResponses = { /** - * Response Health Check Api V1 Health Get + * Response Health Check Api V1 Health Get * * Successful Response */