import request from './request'; export interface InstanceGroup { id: number; name: string; description?: string; db_type: string; permissions?: string[]; access_type?: 'readonly' | 'datachange' | 'ddl'; allowed_databases?: string[]; is_active: boolean; created_at?: string; updated_at?: string; instance_count?: number; user_count?: number; instances?: { id: number; name: string; db_type: string; host: string; port: number; env: string; status: string }[]; users?: { id: number; username: string; display_name: string; role: string }[]; } export const instanceGroupApi = { list: (params?: any) => request.get('/instance-groups', { params }), get: (id: number) => request.get(`/instance-groups/${id}`), create: (data: any) => request.post('/instance-groups', data), update: (id: number, data: any) => request.put(`/instance-groups/${id}`, data), delete: (id: number) => request.delete(`/instance-groups/${id}`), assignInstances: (groupId: number, instanceIds: number[]) => request.post(`/instance-groups/${groupId}/instances`, { instance_ids: instanceIds }), removeInstance: (groupId: number, instanceId: number) => request.delete(`/instance-groups/${groupId}/instances/${instanceId}`), listUsers: (groupId: number) => request.get(`/instance-groups/${groupId}/users`), assignUsers: (groupId: number, userIds: number[], permissions?: string[]) => request.post(`/instance-groups/${groupId}/users`, { user_ids: userIds, permissions }), updateUserGroups: (userId: number, groupIds: number[]) => request.put(`/instance-groups/users/${userId}/groups`, { group_ids: groupIds }), };