import type { AreaListResponse, CategoryListResponse, CreateAreaRequest, CreateCategoryRequest, CreateTeamRequest, ModerationListResponse, OkResponse, OverviewStatsResponse, UpdateAreaRequest, UpdateCategoryRequest, UpdateModerationRequest, UpdateTeamRequest, UpdateUserBanRequest, UpdateUserRolesRequest, UserListResponse } from "~/types/api"; export const useAdmin = () => { const getOverviewStats = () => useApiFetch('/api/v1/admin/stats/overview', { method: 'GET' }) const getUsers = () => useApiFetch('/api/v1/admin/users', { method: 'GET' }) const updateUserBan = (id: number, body: UpdateUserBanRequest) => useApiFetch(`/api/v1/admin/users/${id}/ban`, { method: 'PATCH', body }) const updateUserRoles = (id: number, body: UpdateUserRolesRequest) => useApiFetch(`/api/v1/admin/users/${id}/roles`, { method: 'PATCH', body }) const getAreas = () => useApiFetch('/api/v1/areas', { method: 'GET' }) const createArea = (body: CreateAreaRequest) => useApiFetch('/api/v1/admin/areas', { method: 'POST', body }) const updateArea = (id: number, body: UpdateAreaRequest) => useApiFetch(`/api/v1/admin/areas/${id}`, { method: 'PATCH', body }) const deleteArea = (id: number) => useApiFetch(`/api/v1/admin/areas/${id}`, { method: 'DELETE' }) const getCategories = () => useApiFetch('/api/v1/admin/categories', { method: 'GET' }) const createCategory = (body: CreateCategoryRequest) => useApiFetch('/api/v1/admin/categories', { method: 'POST', body }) const updateCategory = (id: number, body: UpdateCategoryRequest) => useApiFetch(`/api/v1/admin/categories/${id}`, { method: 'PATCH', body }) const deleteCategory = (id: number) => useApiFetch(`/api/v1/admin/categories/${id}`, { method: 'DELETE' }) const createTeam = (body: CreateTeamRequest) => useApiFetch('/api/v1/admin/teams', { method: 'POST', body }) const updateTeam = (id: number, body: UpdateTeamRequest) => useApiFetch(`/api/v1/admin/teams/${id}`, { method: 'PATCH', body }) const deleteTeam = (id: number) => useApiFetch(`/api/v1/admin/teams/${id}`, { method: 'DELETE' }) const getModerationFlags = (query?: { status?: string; page?: number; per_page?: number }) => useApiFetch('/api/v1/admin/moderation', { method: 'GET', query }) const updateModerationFlag = (id: number, body: UpdateModerationRequest) => useApiFetch(`/api/v1/admin/moderation/${id}`, { method: 'PATCH', body }) return { getOverviewStats, getUsers, updateUserBan, updateUserRoles, getAreas, createArea, updateArea, deleteArea, getCategories, createCategory, updateCategory, deleteCategory, createTeam, updateTeam, deleteTeam, getModerationFlags, updateModerationFlag, } }