import { request } from "@/components/service/index"; import { ApiProject, ProjectAuthority, ProjectSearchParams, } from "@/components/models/project/Project"; export const ProjectService = { // ID로 프로젝트 조회 fetchProjectById: (id: number) => { return request.get(`/api/projects/${id}`, {}); }, // 프로젝트 수정 update: (id: number, payload: ApiProject) => { return request.put(`/api/projects/${id}`, payload); }, // 프로젝트 삭제 delete: (id: number) => { return request.delete(`/api/projects/${id}`, {}); }, // 전체 프로젝트 목록 조회 search: () => { return request.get("/api/projects", {}); }, // 프로젝트 생성 add: (payload: ApiProject) => { return request.post("/api/projects", payload); }, // 검색 및 페이지네이션 프로젝트 목록 조회 searchProjects: (params: ProjectSearchParams) => request.get("/api/projects/search", params), // ---------------------------------------------------------------------- // 프로젝트 권한 projectAuthority: (projectId: number, payload: ProjectAuthority) => { return request.post(`/api/projects/${projectId}/users`, payload); }, deleteProjectAuthority: (projectId: number, userId: number) => { return request.delete( `/api/projects/${projectId}/users/${userId}/permissions`, {}, ); }, };