import { httpPostInterceptor, httpGetInterceptor, httpPutInterceptor, httpDeleteInterceptor, } from "./http-config/http-interceptor-service"; // Types export interface UserLevelMenuAccess { id: number; userLevelId: number; menuId: number; canAccess: boolean; isActive: boolean; createdAt?: string; updatedAt?: string; } export interface UserLevelMenuAccessCreateRequest { userLevelId: number; menuId: number; canAccess?: boolean; isActive?: boolean; } export interface UserLevelMenuAccessBatchCreateRequest { userLevelId: number; menuIds: number[]; } export interface UserLevelMenuAccessUpdateRequest { userLevelId?: number; menuId?: number; canAccess?: boolean; isActive?: boolean; } // API Functions export async function getUserLevelMenuAccesses(params?: { userLevelId?: number; menuId?: number; canAccess?: boolean; page?: number; limit?: number; }) { const queryParams = new URLSearchParams(); if (params?.userLevelId) queryParams.append("user_level_id", params.userLevelId.toString()); if (params?.menuId) queryParams.append("menu_id", params.menuId.toString()); if (params?.canAccess !== undefined) queryParams.append("can_access", params.canAccess.toString()); if (params?.page) queryParams.append("page", params.page.toString()); if (params?.limit) queryParams.append("limit", params.limit.toString()); const url = `user-level-menu-accesses${queryParams.toString() ? `?${queryParams.toString()}` : ""}`; return httpGetInterceptor(url); } export async function getUserLevelMenuAccessById(id: number) { const url = `user-level-menu-accesses/${id}`; return httpGetInterceptor(url); } export async function getUserLevelMenuAccessesByUserLevelId(userLevelId: number) { const url = `user-level-menu-accesses/user-level/${userLevelId}`; return httpGetInterceptor(url); } export async function getUserLevelMenuAccessesByMenuId(menuId: number) { const url = `user-level-menu-accesses/menu/${menuId}`; return httpGetInterceptor(url); } export async function checkUserLevelMenuAccess(userLevelId: number, menuId: number) { const url = `user-level-menu-accesses/check/${userLevelId}/${menuId}`; return httpGetInterceptor(url); } export async function createUserLevelMenuAccess(data: UserLevelMenuAccessCreateRequest) { const url = "user-level-menu-accesses"; return httpPostInterceptor(url, data); } export async function createUserLevelMenuAccessesBatch(data: UserLevelMenuAccessBatchCreateRequest) { const url = "user-level-menu-accesses/batch"; return httpPostInterceptor(url, data); } export async function updateUserLevelMenuAccess(id: number, data: UserLevelMenuAccessUpdateRequest) { const url = `user-level-menu-accesses/${id}`; return httpPutInterceptor(url, data); } export async function deleteUserLevelMenuAccess(id: number) { const url = `user-level-menu-accesses/${id}`; return httpDeleteInterceptor(url); }