mirror of
https://github.com/marcogll/AnchorOS.git
synced 2026-03-15 18:24:31 +00:00
Major changes: - Add customer registration with email/phone lookup (app/booking/registro) - Add customers API endpoint (app/api/customers/route) - Implement business hours for locations (mon-fri 10-7, sat 10-6, sun closed) - Fix availability function type casting issues - Add business hours utilities (lib/utils/business-hours.ts) - Update Location type to include business_hours JSONB - Add mock payment component for testing - Remove Supabase auth from booking flow - Fix /cita redirect path in booking flow Database migrations: - Add category column to services table - Add business_hours JSONB column to locations table - Fix availability functions with proper type casting - Update get_detailed_availability to use business_hours Features: - Customer lookup by email or phone - Auto-redirect to registration if customer not found - Pre-fill customer data if exists - Business hours per day of week - Location-specific opening/closing times
64 lines
2.0 KiB
SQL
64 lines
2.0 KiB
SQL
-- Update business_hours with correct structure and values
|
|
-- Execute in Supabase Dashboard: Database > SQL Editor
|
|
|
|
-- First, check current state
|
|
SELECT
|
|
id,
|
|
name,
|
|
business_hours->>'monday' as monday_check,
|
|
(business_hours->'monday'->>'open') as monday_open_check,
|
|
(business_hours->'monday'->>'close') as monday_close_check
|
|
FROM locations
|
|
LIMIT 1;
|
|
|
|
-- Update with correct structure - Monday to Friday 10-7, Saturday 10-6, Sunday closed
|
|
UPDATE locations
|
|
SET business_hours = '{
|
|
"monday": {"open": "10:00", "close": "19:00", "is_closed": false},
|
|
"tuesday": {"open": "10:00", "close": "19:00", "is_closed": false},
|
|
"wednesday": {"open": "10:00", "close": "19:00", "is_closed": false},
|
|
"thursday": {"open": "10:00", "close": "19:00", "is_closed": false},
|
|
"friday": {"open": "10:00", "close": "19:00", "is_closed": false},
|
|
"saturday": {"open": "10:00", "close": "18:00", "is_closed": false},
|
|
"sunday": {"is_closed": true}
|
|
}'::jsonb;
|
|
|
|
-- Verify the update
|
|
SELECT
|
|
id,
|
|
name,
|
|
timezone,
|
|
business_hours
|
|
FROM locations
|
|
LIMIT 1;
|
|
|
|
-- Test extraction for different days
|
|
SELECT
|
|
'Monday' as day,
|
|
(business_hours->'monday'->>'open')::TIME as open_time,
|
|
(business_hours->'monday'->>'close')::TIME as close_time,
|
|
business_hours->'monday'->>'is_closed' as is_closed
|
|
FROM locations
|
|
UNION ALL
|
|
SELECT
|
|
'Saturday' as day,
|
|
(business_hours->'saturday'->>'open')::TIME as open_time,
|
|
(business_hours->'saturday'->>'close')::TIME as close_time,
|
|
business_hours->'saturday'->>'is_closed' as is_closed
|
|
FROM locations
|
|
UNION ALL
|
|
SELECT
|
|
'Sunday' as day,
|
|
(business_hours->'sunday'->>'open')::TIME as open_time,
|
|
(business_hours->'sunday'->>'close')::TIME as close_time,
|
|
business_hours->'sunday'->>'is_closed' as is_closed
|
|
FROM locations;
|
|
|
|
-- Test the get_detailed_availability function
|
|
SELECT * FROM get_detailed_availability(
|
|
(SELECT id FROM locations LIMIT 1),
|
|
(SELECT id FROM services WHERE is_active = true LIMIT 1),
|
|
CURRENT_DATE,
|
|
60
|
|
);
|