import { get, post, put, del } from '@/request/index' import { type Ref } from 'vue' import type { Result } from '@/request/Result' export interface UserGroup { id: string name: string desc: string is_active: boolean member_count?: number auth_count?: number create_time: string } export interface UserGroupMember { id: string username: string nick_name: string } export interface UserGroupAuthorization { id: string resource_type: 'APPLICATION' | 'MODEL' | 'TOOL' | 'KNOWLEDGE' resource_id: string permission: 'READ' | 'WRITE' | 'ADMIN' } // 获取用户组列表 export function getUserGroupList( workspaceId: string, loading?: Ref, ): Promise> { return get(`workspace/${workspaceId}/user_group`, undefined, loading) } // 创建用户组 export function createUserGroup( workspaceId: string, data: { name: string; desc?: string }, loading?: Ref, ): Promise> { return post(`workspace/${workspaceId}/user_group/create`, data, loading) } // 获取用户组详情 export function getUserGroupDetail( workspaceId: string, groupId: string, loading?: Ref, ): Promise> { return get(`workspace/${workspaceId}/user_group/${groupId}`, undefined, loading) } // 更新用户组 export function updateUserGroup( workspaceId: string, groupId: string, data: { name?: string; desc?: string; is_active?: boolean }, loading?: Ref, ): Promise> { return put(`workspace/${workspaceId}/user_group/${groupId}`, data, loading) } // 删除用户组 export function deleteUserGroup( workspaceId: string, groupId: string, loading?: Ref, ): Promise> { return del(`workspace/${workspaceId}/user_group/${groupId}`, undefined, loading) } // 批量添加成员 export function batchAddMembers( workspaceId: string, groupId: string, userIds: string[], loading?: Ref, ): Promise> { return post(`workspace/${workspaceId}/user_group/${groupId}/batch_add_members`, { user_ids: userIds }, loading) } // 批量移除成员 export function batchRemoveMembers( workspaceId: string, groupId: string, userIds: string[], loading?: Ref, ): Promise> { return post(`workspace/${workspaceId}/user_group/${groupId}/batch_remove_members`, { user_ids: userIds }, loading) } // 批量授权 export function batchAuthorize( workspaceId: string, groupId: string, authorizations: Array<{ resource_type: string resource_id: string permission?: string }>, loading?: Ref, ): Promise> { return post(`workspace/${workspaceId}/user_group/${groupId}/batch_authorize`, { authorizations }, loading) } // 批量撤销授权 export function batchRevokeAuthorization( workspaceId: string, groupId: string, authIds: string[], loading?: Ref, ): Promise> { return post(`workspace/${workspaceId}/user_group/${groupId}/batch_revoke`, { auth_ids: authIds }, loading) }