import { Action } from '@lib/types/interfaces';

export const fetchAd = (slug?: string) => ({
	type: '@@ads::FETCH_SINGLE',
	slug: slug
}) as Action;

export const fetchedAd = (data?: object) => ({
	type: '@@ads::FETCHED_SINGLE',
	...data
}) as Action;

export const failedFetchAd = (error?) => ({
	type: '@@ads::FAILED_FETCH_SINGLE',
	...error
}) as Action;

export const createAd = (payload?) => ({
	type: '@@ads::CREATE',
	payload: payload
}) as Action;

export const createdAd = (data?) => ({
	type: '@@ads::CREATED',
	...data
}) as Action;

export const failedCreateAd = (error?) => ({
	type: '@@ads::FAILED_CREATE',
	...error
}) as Action;

export const fetchMultipleAds = (data?, options?: Record<string, any>) => ({
	type: '@@ads::FETCH_MULTIPLE',
	data,
	options,
}) as Action;

export const fetchedMultipleAds = (data?) => ({
	type: '@@ads::FETCHED_MULTIPLE',
	...data
}) as Action;

export const failedFetchMultipleAds = (error?) => ({
	type: '@@ads::FAILED_FETCH_MULTIPLE',
	...error
}) as Action;



export const deleteAd = (id?, dataToAlter?) => ({
	type: '@@ads::DELETE',
	id: id,
	dataToAlter: dataToAlter
}) as Action;

export const deletedAd = (data?) => ({
	type: '@@ads::DELETED',
	...data
}) as Action;

export const failedDeleteAd = (error?) => ({
	type: '@@ads::FAILED_DELETE',
	...error
}) as Action;




export const updateAd = (payload?, uaDataToAlter?) => ({
	type: '@@ads::UPDATE',
	payload: payload,
	uaDataToAlter: uaDataToAlter
}) as Action;

export const updatedAd = (data?) => ({
	type: '@@ads::UPDATED',
	...data
}) as Action;

export const failedUpdateAd = (error?) => ({
	type: '@@ads::FAILED_UPDATE',
	...error
}) as Action;
