first commit

This commit is contained in:
Leonardo
2026-02-18 22:36:45 -03:00
parent ec6b6ef53a
commit 676042268b
122 changed files with 26354 additions and 1615 deletions
+63
View File
@@ -0,0 +1,63 @@
// src/services/subscriptionIntents.js
import { supabase } from '@/lib/supabase/client'
function applyFilters(query, { q, status, planKey, interval }) {
if (q) query = query.ilike('email', `%${q}%`)
if (status) query = query.eq('status', status)
if (planKey) query = query.eq('plan_key', planKey)
if (interval) query = query.eq('interval', interval)
return query
}
export async function listSubscriptionIntents(filters = {}) {
let query = supabase
.from('subscription_intents')
.select('*')
.order('created_at', { ascending: false })
query = applyFilters(query, filters)
const { data, error } = await query
if (error) throw error
return data || []
}
export async function markIntentPaid(intentId, notes = '') {
// 1) marca como pago
const { data: updated, error: upErr } = await supabase
.from('subscription_intents')
.update({
status: 'paid',
paid_at: new Date().toISOString(),
notes: notes || null
})
.eq('id', intentId)
.select('*')
.maybeSingle()
if (upErr) throw upErr
// 2) ativa subscription do tenant (Modelo B)
const { data: sub, error: rpcErr } = await supabase.rpc('activate_subscription_from_intent', {
p_intent_id: intentId
})
if (rpcErr) throw rpcErr
return { intent: updated, subscription: sub }
}
export async function cancelIntent(intentId, notes = '') {
const { data, error } = await supabase
.from('subscription_intents')
.update({
status: 'canceled',
notes: notes || null
})
.eq('id', intentId)
.select('*')
.maybeSingle()
if (error) throw error
return data
}