d240c6678f7c79c208e1eba1edbcf7a6db78be4c
DB (supabase_admin, manual/f6_2d_user_rpcs.supabase_admin.sql): 14 RPCs. Helper _tenant_route(p_tenant_id) valida is_tenant_member + retorna schema (retorna, nao seta — set_config em helper com SET search_path proprio seria revertido na saida). Cada RPC: set_config search_path pro schema + unqualify tabelas tenant + remove WHERE tenant_id= e tenant_id de inserts. - Grupo 1 (ja tinham p_tenant_id, jsonb/void): delete_commitment_full, delete_determined_commitment, seed_default_patient_groups, seed_determined_commitments (no-op se schema nao existe) - Grupo 2 (novo p_tenant_id 1o param, DROP+CREATE): cancel_recurrence_from, cancelar_eventos_serie, split_recurrence_at, safe_delete_patient, export_patient_data (audit_logs global mantido), search_global (patient_intake_requests fica em public/F1b -> qualificado + filtro tenant_id) - Grupo 3 (RETURNS <tabela>->jsonb): mark_as_paid, create_financial_record_ for_session, mark_payout_as_paid, create_therapist_payout - can_delete_patient: unqualified, herda search_path do chamador Smoke: mark_as_paid (status=paid, jsonb) + search_global (acha paciente) OK. Frontend (18 sites): p_tenant_id de useTenantStore().activeTenantId (ou helper local resolveTenantId/currentTenantId). create_financial_record_for_session ja passava tenant; retorno SETOF->jsonb transparente (nenhum consumidor indexava array). Build passa. list_my_signatures (cross-tenant) -> Lote F. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sakai is an application template for Vue based on the create-vue, the recommended way to start a Vite-powered Vue projects.
Visit the documentation to get started.
Description
Languages
Vue
61.1%
PLpgSQL
17.8%
JavaScript
15.9%
HTML
2.6%
TypeScript
2.3%
Other
0.3%