/
NoWay1co
/
AudioAnalytics
Обзор
Документация
Войти
/
NoWay1co
/
AudioAnalytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/api/salons.ts
89 строк
2 KB
Ivan
Реструктуризация фронта + русификация значение на бэке для 1 графика в дашборде
23 янв 2026, 09:07
23 янв 2026, 09:07
1bba443
Код
Авторство
О чём код?
import apiClient from './client'; export interface Salon { id: string; organization_id: string; name: string; address: string; city: string; phone: string | null; manager_id: string | null; working_hours: Record<string, any>; is_active: boolean; created_at: string; employees_count?: number; } export interface SalonListResponse { items: Salon[]; total: number; page: number; page_size: number; } export interface SalonCreateRequest { name: string; address: string; city: string; phone?: string; organization_id: string; working_hours?: Record<string, any>; } export interface SalonUpdateRequest { name?: string; address?: string; city?: string; phone?: string; working_hours?: Record<string, any>; is_active?: boolean; } export const salonsApi = { /** * Get list of salons with optional filters */ async getAll(params?: { organization_id?: string; is_active?: boolean; city?: string; page?: number; page_size?: number; }): Promise<SalonListResponse> { const response = await apiClient.get<SalonListResponse>('/api/salons', { params }); return response.data; }, /** * Get salon by ID */ async getById(id: string): Promise<Salon> { const response = await apiClient.get<Salon>(`/api/salons/${id}`); return response.data; }, /** * Create new salon */ async create(data: SalonCreateRequest): Promise<Salon> { const response = await apiClient.post<Salon>('/api/salons', data); return response.data; }, /** * Update salon */ async update(id: string, data: SalonUpdateRequest): Promise<Salon> { const response = await apiClient.patch<Salon>(`/api/salons/${id}`, data); return response.data; }, /** * Delete salon (soft delete) */ async delete(id: string): Promise<void> { await apiClient.delete(`/api/salons/${id}`); }, }; export default salonsApi;