import { supabase } from './supabase'; async function callFolderSync(action, body) { const { data: { session } } = await supabase.auth.getSession(); const accessToken = session?.access_token; if (!accessToken) return { ok: false, skipped: true, warning: 'No active session.' }; const response = await fetch(`/api/filebrowser?action=${encodeURIComponent(action)}`, { method: 'POST', headers: { Authorization: `Bearer ${accessToken}`, 'Content-Type': 'application/json', }, body: JSON.stringify(body), }); const payload = await response.json().catch(() => ({})); if (!response.ok) { throw new Error(payload?.error || 'Folder sync failed.'); } return payload; } export async function ensureCompanyFolder({ companyId }) { if (!companyId) return { ok: false, skipped: true }; return callFolderSync('ensure-company-folder', { companyId }); } export async function renameCompanyFolder({ companyId, oldName, newName }) { if (!companyId || !oldName || !newName) return { ok: false, skipped: true }; return callFolderSync('rename-company-folder', { companyId, oldName, newName }); } export async function ensureProjectFolder({ projectId }) { if (!projectId) return { ok: false, skipped: true }; return callFolderSync('ensure-project-folder', { projectId }); } export async function renameProjectFolder({ projectId, oldName, newName }) { if (!projectId || !oldName || !newName) return { ok: false, skipped: true }; return callFolderSync('rename-project-folder', { projectId, oldName, newName }); } export async function ensureSubcontractorFolder({ profileId }) { if (!profileId) return { ok: false, skipped: true }; return callFolderSync('ensure-profile-folder', { profileId }); } export async function renameSubcontractorFolder({ profileId, oldName, newName }) { if (!profileId || !oldName || !newName) return { ok: false, skipped: true }; return callFolderSync('rename-profile-folder', { profileId, oldName, newName }); } export async function ensureRequestFolder({ projectId, taskTitle }) { if (!projectId || !taskTitle) return { ok: false, skipped: true }; return callFolderSync('ensure-request-folder', { projectId, taskTitle }); } export async function uploadRequestFileToSurvey({ projectId, taskTitle, storagePath, fileName, bucket = 'submissions' }) { if (!projectId || !taskTitle || !storagePath || !fileName) return { ok: false, skipped: true }; return callFolderSync('upload-request-file', { projectId, taskTitle, storagePath, fileName, bucket }); }