import WebClient from "@/shared/web-client" export interface User { id: string username: string role: "admin" | "user" createdAt: string updatedAt: string } export interface CreateUserRequest { username: string password: string role: "admin" | "user" } export interface UpdateUserRequest { username?: string password?: string role?: "admin" | "user" } export interface UsersResponse { data: User[] total: number page: number pageSize: number } export interface UsersQuery { page?: number pageSize?: number } export async function getUsers(query?: UsersQuery): Promise { const params = new URLSearchParams() if (query?.page) params.append("page", query.page.toString()) if (query?.pageSize) params.append("pageSize", query.pageSize.toString()) const queryString = params.toString() const { data } = await WebClient.get( `/users${queryString ? `?${queryString}` : ""}` ) return data } export async function createUser(request: CreateUserRequest): Promise { const { data } = await WebClient.post("/users", request) return data } export async function updateUser(id: string, request: UpdateUserRequest): Promise { const { data } = await WebClient.put(`/users/${id}`, request) return data } export async function deleteUser(id: string): Promise { await WebClient.delete(`/users/${id}`) }