import type { PageLayout, CreatePageLayoutRequest, UpdatePageLayoutRequest, PageLayoutType } from '~/types/page-layout' export const usePageLayouts = () => { const { api } = useApi() const getPageLayouts = async (objectId?: string, layoutType?: PageLayoutType) => { try { const params: Record = {} if (objectId) params.objectId = objectId if (layoutType) params.layoutType = layoutType const response = await api.get('/page-layouts', { params }) return response } catch (error) { console.error('Error fetching page layouts:', error) throw error } } const getPageLayout = async (id: string) => { try { const response = await api.get(`/page-layouts/${id}`) return response } catch (error) { console.error('Error fetching page layout:', error) throw error } } const getDefaultPageLayout = async (objectId: string, layoutType: PageLayoutType = 'detail') => { try { const response = await api.get(`/page-layouts/default/${objectId}`, { params: { layoutType } }) return response } catch (error) { console.error('Error fetching default page layout:', error) return null } } const createPageLayout = async (data: CreatePageLayoutRequest) => { try { const response = await api.post('/page-layouts', data) return response } catch (error) { console.error('Error creating page layout:', error) throw error } } const updatePageLayout = async (id: string, data: UpdatePageLayoutRequest) => { try { const response = await api.patch(`/page-layouts/${id}`, data) return response } catch (error) { console.error('Error updating page layout:', error) throw error } } const deletePageLayout = async (id: string) => { try { const response = await api.delete(`/page-layouts/${id}`) return response } catch (error) { console.error('Error deleting page layout:', error) throw error } } return { getPageLayouts, getPageLayout, getDefaultPageLayout, createPageLayout, updatePageLayout, deletePageLayout, } }