/* |-------------------------------------------------------------------------- | Agência PSI |-------------------------------------------------------------------------- | Criado e desenvolvido por Leonardo Nohama | | Tecnologia aplicada à escuta. | Estrutura para o cuidado. | | Arquivo: src/features/agenda/composables/useDeterminedCommitments.js | Data: 2026 | Local: São Carlos/SP — Brasil |-------------------------------------------------------------------------- | © 2026 — Todos os direitos reservados |-------------------------------------------------------------------------- */ import { computed, ref } from 'vue'; import { supabase } from '@/lib/supabase/client'; import { tenantDb } from '@/lib/supabase/tenantClient'; export function useDeterminedCommitments(tenantIdRef) { const loading = ref(false); const error = ref(''); const rows = ref([]); const tenantId = computed(() => { const v = tenantIdRef?.value ?? tenantIdRef; return v ? String(v) : ''; }); async function load() { try { if (!tenantId.value) { rows.value = []; error.value = ''; return; } if (loading.value) return; loading.value = true; error.value = ''; const { data, error: err } = await tenantDb().from('determined_commitments') .select('id,created_by,is_native,native_key,is_locked,active,name,description,bg_color,text_color,created_at,determined_commitment_fields(id,key,label,field_type,required,sort_order)') // ✅ SOMENTE tenant corrente .eq('active', true) .order('is_native', { ascending: false }) .order('name', { ascending: true }); if (err) throw err; rows.value = data || []; } catch (e) { error.value = e?.message || 'Falha ao carregar compromissos determinísticos.'; rows.value = []; } finally { loading.value = false; } } return { loading, error, rows, load }; }