import { adminRequest } from "@/lib/admin-http"; import type { AdminPermissionCatalogData, AdminRoleCreatePayload, AdminRoleDeleteResult, AdminRoleListData, AdminRoleRow, AdminRoleUpdatePayload, AdminUserCreatePayload, AdminUserDeleteResult, AdminUserPermissionListData, AdminUserPermissionRow, AdminUserRoleSyncData, AdminUserUpdatePayload, } from "@/types/api/admin-user"; const A = `/admin`; export async function getAdminUsers(params?: { page?: number; per_page?: number; keyword?: string; }): Promise { return adminRequest.get(`${A}/admin-users`, { params, }); } export async function getAdminUserPermissionCatalog(): Promise { return adminRequest.get(`${A}/admin-user-permission-catalog`); } export async function getAdminRoles(): Promise { return adminRequest.get(`${A}/admin-roles`); } export async function getAdminUser(adminUserId: number): Promise { return adminRequest.get(`${A}/admin-users/${adminUserId}`); } export async function postAdminUser(body: AdminUserCreatePayload): Promise { return adminRequest.post(`${A}/admin-users`, body); } export async function putAdminUser( adminUserId: number, body: AdminUserUpdatePayload, ): Promise { return adminRequest.put(`${A}/admin-users/${adminUserId}`, body); } export async function deleteAdminUser(adminUserId: number): Promise { return adminRequest.delete(`${A}/admin-users/${adminUserId}`); } export async function postAdminRole(body: AdminRoleCreatePayload): Promise { return adminRequest.post(`${A}/admin-roles`, body); } export async function putAdminRole( roleId: number, body: AdminRoleUpdatePayload, ): Promise { return adminRequest.put(`${A}/admin-roles/${roleId}`, body); } export async function deleteAdminRole(roleId: number): Promise { return adminRequest.delete(`${A}/admin-roles/${roleId}`); } export async function putAdminRolePermissions( roleId: number, permissionSlugs: string[], ): Promise { return adminRequest.put(`${A}/admin-roles/${roleId}/permissions`, { permission_slugs: permissionSlugs, }); } export async function putAdminUserRoles( adminUserId: number, roleSlugs: string[], ): Promise { return adminRequest.put(`${A}/admin-users/${adminUserId}/roles`, { role_slugs: roleSlugs, }); }