- Fix consulting history to show continuous time range (09:00 - 11:00) instead of listing individual slots - Add foreign key relationships for consulting_slots (order_id and user_id) - Fix handle-order-paid to query profiles(email, name) instead of full_name - Add completed consulting sessions with recordings to Member Access page - Add user_id foreign key constraint to consulting_slots table - Add orders foreign key constraint for consulting_slots relationship 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
39 lines
1.1 KiB
SQL
39 lines
1.1 KiB
SQL
-- SQL Script to manually fix existing paid consulting orders
|
|
-- This updates consulting_slots status and can be run in Supabase SQL Editor
|
|
|
|
-- Step 1: Check how many consulting orders are affected
|
|
SELECT
|
|
o.id as order_id,
|
|
o.payment_status,
|
|
COUNT(cs.id) as slot_count,
|
|
SUM(CASE WHEN cs.status = 'pending_payment' THEN 1 ELSE 0 END) as pending_slots
|
|
FROM orders o
|
|
INNER JOIN consulting_slots cs ON cs.order_id = o.id
|
|
WHERE o.payment_status = 'paid'
|
|
GROUP BY o.id, o.payment_status
|
|
HAVING SUM(CASE WHEN cs.status = 'pending_payment' THEN 1 ELSE 0 END) > 0;
|
|
|
|
-- Step 2: Update all pending_payment slots for paid orders to 'confirmed'
|
|
UPDATE consulting_slots
|
|
SET status = 'confirmed'
|
|
WHERE order_id IN (
|
|
SELECT o.id
|
|
FROM orders o
|
|
WHERE o.payment_status = 'paid'
|
|
)
|
|
AND status = 'pending_payment';
|
|
|
|
-- Step 3: Verify the update
|
|
SELECT
|
|
o.id as order_id,
|
|
o.payment_status,
|
|
cs.status as slot_status,
|
|
cs.date,
|
|
cs.start_time,
|
|
cs.end_time,
|
|
cs.meet_link
|
|
FROM orders o
|
|
INNER JOIN consulting_slots cs ON cs.order_id = o.id
|
|
WHERE o.payment_status = 'paid'
|
|
ORDER BY o.created_at DESC;
|