import apiClient from '@/api/client'; import toast from 'react-hot-toast'; export type BannerMediaType = 'IMAGE' | 'VIDEO'; export interface HomepageBanner { id?: number; title?: string; subtitle?: string; mediaType: BannerMediaType; desktopMediaUrl: string; mobileMediaUrl?: string; buttonText?: string; buttonLink?: string; openInNewTab: boolean; textAlignment?: 'left' | 'center' | 'right'; sortOrder: number; isActive: boolean; createdAt?: string; updatedAt?: string; } export const getHomepageBannersApi = async () => { const res = await apiClient.get('/homepage-banners/getAll'); return res.data; }; export const getHomepageBannerApi = async (id: number) => { const res = await apiClient.get(`/homepage-banners/${id}`); return res.data; }; export const getActiveHomepageBannersApi = async () => { const res = await apiClient.get('/homepage-banners/active'); return res.data; }; export const createHomepageBannerApi = async (data: Partial) => { try { const res = await apiClient.post('/homepage-banners', data); toast.success('Banner created successfully'); return res.data; } catch (error: any) { toast.error(error?.response?.data?.message || 'Failed to create banner'); throw error; } }; export const updateHomepageBannerApi = async (id: number, data: Partial) => { try { const res = await apiClient.put(`/homepage-banners/${id}`, data); toast.success('Banner updated successfully'); return res.data; } catch (error: any) { toast.error(error?.response?.data?.message || 'Failed to update banner'); throw error; } }; export const deleteHomepageBannerApi = async (id: number) => { try { const res = await apiClient.delete(`/homepage-banners/${id}`); toast.success('Banner deleted successfully'); return res.data; } catch (error: any) { toast.error(error?.response?.data?.message || 'Failed to delete banner'); throw error; } };