/*
|--------------------------------------------------------------------------
| 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 };
}
