import { api } from '@services/api/axios-instance'; import type { Company, CreateCompanyDto, UpdateCompanyDto, CompanyFilters, CompaniesResponse, } from '../types'; const BASE_URL = '/api/v1/companies'; export const companiesApi = { // Get all companies with filters getAll: async (filters?: CompanyFilters): Promise => { const params = new URLSearchParams(); if (filters?.search) params.append('search', filters.search); if (filters?.parentCompanyId) params.append('parentCompanyId', filters.parentCompanyId); if (filters?.page) params.append('page', String(filters.page)); if (filters?.limit) params.append('limit', String(filters.limit)); if (filters?.sortBy) params.append('sortBy', filters.sortBy); if (filters?.sortOrder) params.append('sortOrder', filters.sortOrder); const response = await api.get(`${BASE_URL}?${params.toString()}`); return response.data; }, // Get company by ID getById: async (id: string): Promise => { const response = await api.get(`${BASE_URL}/${id}`); return response.data; }, // Create company create: async (data: CreateCompanyDto): Promise => { const response = await api.post(BASE_URL, data); return response.data; }, // Update company update: async (id: string, data: UpdateCompanyDto): Promise => { const response = await api.patch(`${BASE_URL}/${id}`, data); return response.data; }, // Delete company delete: async (id: string): Promise => { await api.delete(`${BASE_URL}/${id}`); }, // Get child companies (subsidiaries) getChildren: async (parentId: string): Promise => { const response = await api.get(`${BASE_URL}/${parentId}/children`); return response.data; }, };