import {instance} from "./axios";

/* --------------------------------- */
/*         SubmissionPrograms        */
/* --------------------------------- */

export function getSubmissionPrograms(params : any) {
    return instance.post<any>("api/applioBox/v1/submission-programs", params);
}

export function getSingleSubmissionProgram(id: any) {
    return instance.get<any>(`api/applioBox/v1/submissionProgram-details/${id}`);
}

/* --------------------------------- */
/*              Calls                */
/* --------------------------------- */

export function getCallSubmissionData (id: any) {
	return instance.get<any>(`api/applioBox/v1/call-details/${id}`);
}

export function submitCallSubmissionData(data:any) {
	return instance.post<any>(`api/applioBox/v1/proposal/store`, data);
}


/* --------------------------------- */
/*              Submissions          */
/* --------------------------------- */

export function getMySubmissions (params : any) {
	return instance.post<any>(`api/applioBox/v1/my-proposals`, params);
}

export function cancelMySubmission (id : any) {
	return instance.post<any>(`api/applioBox/v1/delete-proposal`,{proposal_hash_id: id});
}
/* --------------------------------- */
/*               Files               */
/* --------------------------------- */

export async function downloadFile(fileHash: string) {
	return instance.get(`api/applioBox/v1/download-file/${fileHash}`, { responseType: 'blob' });
}

export async function submitFiles(data: { file: File; ui_tag: string }[], proposal_hash_id: string, call_hash_id: string) {
    const formData = new FormData();
    
    formData.append('proposal_hash_id', proposal_hash_id);
    formData.append('call_hash_id', call_hash_id);
    
    data.forEach(({ file, ui_tag }) => {
        formData.append('files[]', file);
        formData.append('ui_tags[]', ui_tag);
    });

    return instance.post(`api/applioBox/v1/upload-file`, formData, {
        headers: {
            'Content-Type': 'multipart/form-data'
        }
    });
}