import api from './api'; // Интерфейсы для страниц контента export interface Page { id: number; title: string; slug: string; content: string; meta_title?: string; meta_description?: string; is_published: boolean; created_at: string; updated_at?: string; } export interface PageCreate { title: string; slug: string; content: string; meta_title?: string; meta_description?: string; is_published?: boolean; } export interface PageUpdate { title?: string; slug?: string; content?: string; meta_title?: string; meta_description?: string; is_published?: boolean; } // Сервис для работы с контентом const contentService = { // Получить список страниц getPages: async (params?: { skip?: number; limit?: number; }): Promise => { try { const response = await api.get('/content/pages', { params }); return response as Page[]; } catch (error) { console.error('Ошибка при получении списка страниц:', error); return []; } }, // Получить страницу по ID getPageById: async (pageId: number): Promise => { try { const response = await api.get(`/content/pages/${pageId}`); return response as Page; } catch (error) { console.error(`Ошибка при получении страницы ${pageId}:`, error); return null; } }, // Получить страницу по slug getPageBySlug: async (slug: string): Promise => { try { const response = await api.get(`/content/pages/slug/${slug}`); return response as Page; } catch (error) { console.error(`Ошибка при получении страницы по slug ${slug}:`, error); return null; } }, // Создать новую страницу (только для админов) createPage: async (pageData: PageCreate): Promise => { try { const response = await api.post('/content/pages', pageData); return response as Page; } catch (error) { console.error('Ошибка при создании страницы:', error); return null; } }, // Обновить страницу (только для админов) updatePage: async (pageId: number, pageData: PageUpdate): Promise => { try { const response = await api.put(`/content/pages/${pageId}`, pageData); return response as Page; } catch (error) { console.error(`Ошибка при обновлении страницы ${pageId}:`, error); return null; } }, // Удалить страницу (только для админов) deletePage: async (pageId: number): Promise => { try { await api.delete(`/content/pages/${pageId}`); return true; } catch (error) { console.error(`Ошибка при удалении страницы ${pageId}:`, error); return false; } } }; export default contentService;