/** 数据权限分组 API 适配(任务 59;module 13 task 253 扩展 CRUD)。 */ import { http } from '@/api/http' import { unwrap } from '@/api/envelope' import { parseShopGroupItem, parseShopGroupList, toShopGroupCreatePayload, toShopGroupUpdatePayload, type ShopGroupItem, } from './shop-group-model' export const SHOP_GROUPS_ENDPOINT = '/api/admin/shop-manages/groups' export async function fetchShopGroups(): Promise { const { data } = await http.get(SHOP_GROUPS_ENDPOINT) return parseShopGroupList(data) } /** 新建分组:POST /api/admin/shop-manages/groups(创建人 = 组长 = 当前操作者)。 */ export async function createShopGroup(name: string, memberUserIds: number[], createdById: number): Promise { const { data } = await http.post(SHOP_GROUPS_ENDPOINT, toShopGroupCreatePayload(name, memberUserIds, createdById)) const created = parseShopGroupItem(unwrap(data)) if (!created) throw new Error('创建分组响应异常:缺少分组数据') return created } /** 更新分组:PUT /api/admin/shop-manages/groups/{id}。 */ export async function updateShopGroup(id: number, name: string, memberUserIds: number[]): Promise { const { data } = await http.put(`${SHOP_GROUPS_ENDPOINT}/${id}`, toShopGroupUpdatePayload(name, memberUserIds)) const updated = parseShopGroupItem(unwrap(data)) if (!updated) throw new Error('更新分组响应异常:缺少分组数据') return updated } /** 删除分组:DELETE /api/admin/shop-manages/groups/{id}。 */ export async function deleteShopGroup(id: number): Promise { const { data } = await http.delete(`${SHOP_GROUPS_ENDPOINT}/${id}`) unwrap(data) }